以可读/分层格式显示数组

这里是拉我的数组的数据的代码

<?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/>"; } 

我只是使用在线工具。

简单易用的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/>'; } ?>