如果我在PHP中使用print_r,它会在垃圾中打印数组

时间:2009-10-03 22:21:08

标签: php

如何以树状格式打印数组 - 使其更易于阅读?

9 个答案:

答案 0 :(得分:13)

尝试:

<pre><?php print_r($var); ?></pre>

它将提供HTML的空白策略修剪的正确树结构。

答案 1 :(得分:12)

您是否将输出包装在<pre>个标签中?这应该会让你得到相当不错的输出,因为它会显示空间。另一种选择是安装xdebug扩展,然后可以replace var_dump,以便生成更易读的HTML输出。

答案 2 :(得分:4)

function pr($var)
{
    print '<pre>';
    print_r(htmlspecialchars($var));
    print '</pre>';
}

pr($myArray);

答案 3 :(得分:2)

我发现print_r是个好主意,如下所示

printf("<pre>%s</pre>", print_r($array, true));

它可能不太理想,但它更容易阅读。

答案 4 :(得分:1)

试着看看Zend_Debug,它是Zend Framework中一个相对即插即用的模块,可以有效地转储复杂的变量。

用法:

$my_var = new StdObject(); // or whatever
Zend_Debug::dump($my_var); 
die; // optional, prevents routing, forwarding away, etc.

答案 5 :(得分:1)

您可以将其打印到错误日志中:

error_log(print_r($myarray,1));

请注意,您将看到\ n而不是回车符,因为它必须在一行中折叠。

答案 6 :(得分:0)

Mabe输出看起来像网页中的垃圾。尝试查看页面的来源,我认为它将采用树状格式。

答案 7 :(得分:0)

我建议您使用var_export($array)吗?

使用可解析的php语法

格式化值

即使您忘记输出<pre></pre>标签, 虽然眼睛不是很容易 它的输出仍然比print_r非正式的数据更有意义。

答案 8 :(得分:0)

正如许多人之前提到的那样,请确保将其包裹在<pre>标记内。

我会采取额外的预防措施,以确保没有任何东西包裹<pre>,例如<p><div>,其CSS类可以覆盖Pre的样式