以可读/分层格式显示数组
这里是拉我的数组的数据的代码
<?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:
function prettyPrint($a) { echo "<pre>"; print_r($a); echo "</pre>"; } prettyPrint($data);
编辑:优化的function
function prettyPrint($a) { echo '<pre>'.print_r($a,1).'</pre>'; }
编辑:莫尔优化与自定义标签支持function
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;
这可能是一个更简单的解决scheme:
echo implode('<br>', $data[0]);
print_r()
主要用于debugging。 如果您想以这种格式打印,请遍历数组,并将元素打印出来。
foreach($data as $d){ foreach($d as $v){ echo $v."\n"; } }
我假设使用print_r进行debugging。 然后我会build议使用像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)
简单易用的JSON表示forms:
echo json_encode($data, JSON_PRETTY_PRINT);
如果已经使用composer php,需要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/>'; ?>
对于multidimensional array,您需要结合某种循环。
<?php $msgs[] = $msg; $msgs[] = $msg; $msgs[] = $msg; $msgs[] = $msg; $msgs[] = $msg; foreach($msgs as $msg) { echo implode('<br />',$msg); echo '<br />----------------------<br/>'; } ?>