2009-03-28 2 views
22

Можно ли эхо или распечатать все содержимое массива без указания какой части массива?Вывод (эхо/печать) все из массива PHP

Сценарий: Я пытаюсь повторить все от:

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

Без указания «ID» и вместо того, чтобы выводить все содержимое массива.

ответ

34

Если вы хотите отформатировать вывод самостоятельно, просто добавьте еще один цикл (Еогеасп) перебирать содержимое текущей строки:

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

Или, если вы не заботитесь о форматировании, используйте функцию print_r рекомендованной в предыдущих ответах.

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

print_r() печатает только ключи и значения массива, противоположность var_dump() whichs также печатает типы данных в массиве, т.е. String, Int, двойные, и так далее. Если вы заботитесь о типах данных, используйте var_dump() над print_r().

6

var_dump() может это сделать.

Эта функция отображает структурированную информацию об одном или нескольких выражениях, которые включают его тип и значение. Массивы и объекты исследуются рекурсивно со значениями, отступающими для отображения структуры.

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

4

Я думаю, что вы ищете print_r, который будет печатать из массива в виде текста. Вы не можете управлять форматированием, но это больше для отладки. Если вам требуется крутое форматирование, вам нужно будет сделать это вручную.

17

Для хороших & читаемых результатов, используйте:

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

выше функция будет сохранить исходное форматирование, что делает его (больше) читаемым в веб-браузере.

+1

Нельзя ли назвать этот printVar или debugVar? Зачем называть его readVar? – jmucchiello

+0

Хороший момент, названный его на лету. Должно быть, должно быть printVar. Спасибо за проголосовавший. – karim79

1

Подобно Карима, но с print_r, который имеет значительно меньшую производительность и я нахожу, как правило, все, что вам нужно:

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

Это небольшая функция, которую я использую все время, когда она удобна, если вы отлаживаете массивы. Это почти то же самое, что и Даррил и Карим. Я просто добавил заголовок параметра, поэтому у вас есть какая-то информация об отладке, как какой массив вы печатаете. он также проверяет, снабжен ли он допустимым массивом и позволяет узнать, нет ли у вас этого.

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."; 
     } 
} 

Базовое использование:

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

Результаты:

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

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

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

Вы можете использовать print_r, чтобы получить выход удобочитаемый. Но для отображения его в качестве текста добавим «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 

Используйте эту функцию каждый раз, когда вам понадобится строка или массив, это будет просто великолепно.
Есть 2 Patameters
1. $ данных - это может быть массив или строка
2. $ d - По умолчанию это значение FALSE, но если вы установите так, то он будет выполнять функцию матрицы()

В вашем случае вы можете использовать таким образом ....

while($row = mysql_fetch_array($result)){ 
    p($row); // Use this function if you use above function in your page. 
} 
Смежные вопросы