2009-03-28 29 views
22

Có thể lặp lại hoặc in toàn bộ nội dung của một mảng mà không xác định phần nào của mảng không?Đầu ra (echo/print) mọi thứ từ một mảng PHP

Kịch bản: Tôi đang cố gắng để echo tất cả mọi thứ từ:

while($row = mysql_fetch_array($result)){ 
echo $row['id']; 
} 

Nếu không có quy định cụ thể "id" và thay vào đó xuất ra các nội dung hoàn chỉnh của mảng.

Trả lời

34

Nếu bạn muốn định dạng đầu ra của riêng bạn, chỉ cần thêm một vòng lặp (foreach) để lặp qua các nội dung của hàng hiện tại:

while ($row = mysql_fetch_array($result)) { 
    foreach ($row as $columnName => $columnData) { 
     echo 'Column name: ' . $columnName . ' Column data: ' . $columnData . '<br />'; 
    } 
} 

Hoặc nếu bạn không quan tâm về định dạng, sử dụng hàm print_r đề nghị trong các câu trả lời trước.

while ($row = mysql_fetch_array($result)) { 
    echo '<pre>'; 
    print_r ($row); 
    echo '</pre>'; 
} 

print_r() in chỉ các phím và các giá trị của mảng, trái ngược với var_dump() whichs cũng in các loại dữ liệu trong mảng, ví dụ: String, int, double, và vân vân. Nếu bạn quan tâm đến các kiểu dữ liệu - hãy dùng var_dump() trên print_r().

6

var_dump() có thể thực hiện việc này.

Chức năng này hiển thị thông tin có cấu trúc về một hoặc nhiều biểu thức bao gồm loại và giá trị của nó. Mảng và đối tượng được khám phá đệ quy với các giá trị thụt vào để hiển thị cấu trúc.

http://php.net/manual/en/function.var-dump.php

4

Tôi nghĩ rằng bạn đang tìm kiếm print_r mà sẽ in ra mảng dưới dạng văn bản. Bạn không thể kiểm soát định dạng mặc dù, nó là nhiều hơn để gỡ lỗi. Nếu bạn muốn định dạng thú vị, bạn sẽ cần phải làm điều đó bằng tay.

17

Đối đẹp & kết quả có thể đọc được, sử dụng này:

function printVar($var) { 
    echo '<pre>'; 
    var_dump($var); 
    echo '</pre>'; 
} 

Chức năng trên sẽ duy trì định dạng gốc, làm cho nó có (thêm) có thể đọc được trong một trình duyệt web.

+1

Bạn không nên gọi đó printVar hoặc debugVar? Tại sao gọi nó là readVar? – jmucchiello

+0

Điểm tốt, được đặt tên khi đang di chuyển. Có lẽ nên là printVar. Cảm ơn bạn đã bỏ phiếu xuống. – karim79

1

Tương tự như của Karim, nhưng với print_r trong đó có một nhiều đầu ra nhỏ và tôi thấy thường là tất cả các bạn cần:

function PrintR($var) { 
    echo '<pre>'; 
    print_r($var); 
    echo '</pre>'; 
} 
2

Đây là một chức năng nhỏ mà tôi luôn sử dụng nếu bạn đang gỡ lỗi mảng. Nó khá giống với điều mà Darryl và Karim đã đăng. Tôi chỉ cần thêm một tham số tiêu đề để bạn có một số thông tin gỡ lỗi như những gì mảng bạn đang in. nó cũng kiểm tra nếu bạn đã cung cấp nó với một mảng hợp lệ và cho bạn biết nếu bạn không.

function print_array($title,$array){ 

     if(is_array($array)){ 

      echo $title."<br/>". 
      "||---------------------------------||<br/>". 
      "<pre>"; 
      print_r($array); 
      echo "</pre>". 
      "END ".$title."<br/>". 
      "||---------------------------------||<br/>"; 

     }else{ 
      echo $title." is not an array."; 
     } 
} 

sử dụng cơ bản:

//your array 
$array = array('cat','dog','bird','mouse','fish','gerbil'); 
//usage 
print_array("PETS", $array); 

Kết quả:

PETS 
||---------------------------------|| 

Array 
(
    [0] => cat 
    [1] => dog 
    [2] => bird 
    [3] => mouse 
    [4] => fish 
    [5] => gerbil 
) 

END PETS 
||---------------------------------|| 
0

Bạn có thể sử dụng print_r để có được đầu ra của con người có thể đọc được. Nhưng để hiển thị nó dưới dạng văn bản, chúng tôi thêm "echo"; "

echo ''; print_r ($ row);

0
//@parram $data-array,$d-if true then die by default it is false 
//@author Your name 

function p($data,$d = false){ 

    echo "<pre>"; 
     print_r($data); 
    echo "</pre>"; 

    if($d == TRUE){ 
     die(); 
    } 
} // END OF FUNCTION 

Sử dụng chức năng này mỗi khi bạn cần xâu chuỗi hoặc sắp xếp nó sẽ bị xóa.
Có 2 Patameters
1. $ data - Nó có thể là mảng hoặc String
2. $ d - Theo mặc định nó là FALSE nhưng nếu bạn thiết lập là true thì nó sẽ thực hiện) chức năng (die

Trong trường hợp của bạn, bạn có thể sử dụng theo cách này ....

while($row = mysql_fetch_array($result)){ 
    p($row); // Use this function if you use above function in your page. 
} 
Các vấn đề liên quan