Вот код для вытягивания данных для моего массива
<?php $link = mysqli_connect('localhost', 'root', '', 'mutli_page_form'); $query = "SELECT * FROM wills_children WHERE will=73"; $result = mysqli_query($link, $query) or die(mysqli_error($link)); if ($result = mysqli_query($link, $query)) { /* fetch associative array */ if($row = mysqli_fetch_assoc($result)) { $data = unserialize($row['children']); } /* free result set */ mysqli_free_result($result); } ?>
Когда я использую print_r ($ data), он читается как:
Array ( [0] => Array ( [0] => Natural Chlid 1 [1] => Natural Chlid 2 [2] => Natural Chlid 3 ) )
Я бы хотел, чтобы он читал:
Природный ребенок 1
Природный ребенок 2
Природный ребенок 3
Попробуй это:
foreach($data[0] as $child) { echo $child . "\n"; }
вместо print_r($data)
Вместо
print_r($data);
пытаться
print "<pre>"; print_r($data); print "</pre>";
print("<pre>".print_r($data,true)."</pre>");
У меня есть основная функция:
function prettyPrint($a) { echo "<pre>"; print_r($a); echo "</pre>"; } prettyPrint($data);
EDIT: оптимизированная функция
function prettyPrint($a) { echo '<pre>'.print_r($a,1).'</pre>'; }
EDIT: оптимизированная функция Moar с поддержкой пользовательских тегов
function prettyPrint($a, $t='pre') {echo "<$t>".print_r($a,1)."</$t>";}
Я думаю, что var_export()
, забытый брат var_dump()
имеет лучший результат – он более компактный:
echo "<pre>"; var_export($menue); echo "</pre>";
Кстати: не всегда нужно использовать <pre>
. var_dump()
и var_export()
уже отформатированы, когда вы смотрите в исходный код своей веб-страницы.
если кто-то должен просматривать массивы так здорово;) используйте этот метод .. это будет печатать на консоль вашего браузера
function console($obj) { $js = json_encode($obj); print_r('<script>console.log('.$js.')</script>'); }
вы можете использовать вот так ..
console($myObject);
Выход будет таким: так круто, а !!
foreach($array as $v) echo $v, PHP_EOL;
Это может быть более простое решение:
echo implode('<br>', $data[0]);
print_r()
в основном используется для отладки. Если вы хотите распечатать его в этом формате, проведите цикл по массиву и распечатайте элементы.
foreach($data as $d){ foreach($d as $v){ echo $v."\n"; } }
Я предполагаю, что для отладки используется print_r. Тогда я бы предложил использовать библиотеки, такие как Kint . Это позволяет отображать большие массивы в читаемом формате:
$data = [['Natural Child 1', 'Natural Child 2', 'Natural Child 3']]; Kint::dump($data, $_SERVER);
Очень хороший способ распечатать отформатированный массив в php, используя функцию var_dump.
$a = array(1, 2, array("a", "b", "c")); var_dump($a);
Я использую это для получения ключей и их значений $ qw = mysqli_query ($ connection, $ query);
while ( $ou = mysqli_fetch_array($qw) ) { foreach ($ou as $key => $value) { echo $key." - ".$value.""; } echo "<br/>"; }
Я бы просто использовал онлайн-инструменты.
сначала сделайте print_r (your_array)
Вторая копия результата и вставка в http://phillihp.com/toolz/php-array-beautifier/
Однострочный для быстрого и легкого представления JSON:
echo json_encode($data, JSON_PRETTY_PRINT);
Если вы используете композитор для проекта уже, имейте в виду symfony / yaml и:
echo Yaml::dump($data);
echo '<pre>'; foreach($data as $entry){ foreach($entry as $entry2){ echo $entry2.'<br />'; } }
<?php //Make an array readable as string function array_read($array, $seperator = ', ', $ending = ' and '){ $opt = count($array); return $opt > 1 ? implode($seperator,array_slice($array,0,$opt-1)).$ending.end($array) : $array[0]; } ?>
Я использую это, чтобы показать довольно печатный массив для моих посетителей
Для одиночных массивов вы можете использовать implode, у него есть более чистый результат для печати.
<?php $msg = array('msg1','msg2','msg3'); echo implode('<br />',$msg); echo '<br />----------------------<br/>'; echo nl2br(implode("\n",$msg)); echo '<br />----------------------<br/>'; ?>
Для многомерных массивов вам необходимо комбинировать с каким-то контуром.
<?php $msgs[] = $msg; $msgs[] = $msg; $msgs[] = $msg; $msgs[] = $msg; $msgs[] = $msg; foreach($msgs as $msg) { echo implode('<br />',$msg); echo '<br />----------------------<br/>'; } ?>