我看到php.net的手册并看到一些示例,当使用var_dump和其他命令查看示例时。
所有示例都以预先样式排序。
但在我自己的服务器上,我只在一行上看到相同的例子
var_dump($a);
在手动上看 - >
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
在我的服务器上,我看到:
array(3) {[0]=>int(1) [1]=>int(2) [2]=>array(3) {[0]=>string(1) "a" [1]=>string(1) "b" [2]=>string(1) "c"}}
我认为这是一个运行时选项,我可以更改,但我不确定。那么如何以与手册中相同的格式获得输出?
答案 0 :(得分:5)
您可能正在寻找pre
标记,它会为您提供一个很好的格式化输出。只需在使用var_dump();
之前打印,例如
echo "<pre>";
var_dump($arr);
echo "</pre>";
输入/输出示例:
$arr = [1, 2, 3];
带有pre
标记的:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
没有pre
标记:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
答案 1 :(得分:0)
我为这种情况设置了这个功能。
function echo_array($array,$name = '')
{
$debug = debug_backtrace();
$file = $debug[0]['file'];
$line = $debug[0]['line'];
$array = "<pre>".print_r($array,true)."</pre>";
?>
<table cellpadding="0" cellspacing="0" width="100%" style="background-color:white;">
<tr>
<td align="left">
<fieldset>
<legend>
<?=$name?> in: <?=$file?>:<?=$line?>
</legend>
<?=$array?>
</fieldset>
</td>
</tr>
</table>
<?
}
使用print_r()
可以传递数组,第二个参数表示它应该返回而不是打印出来。
我使用调试信息来获取调用此函数的位置,因为有时我必须使用其中许多函数,因为它可能会让人感到困惑。 您还可以为其设置名称以确定回显的内容;)