这个问题在这里已经有了答案:
Make var_dump look pretty
(15 个回答)
6 个月前关闭。
我用了print_r
函数打印从数据库中的表中获取的数组。而不是像这样格式良好的数组:
Array
(
[0] => Array
(
[id] => 1
[firstname] => Firstname one
[lastname] => Lastname one
)
[1] => Array
(
[id] => 2
[firstname] => Firstname two
[lastname] => Lastname two
)
[2] => Array
(
[id] => 3
[firstname] => Firstname three
[lastname] => Lastname three
)
)
我得到了内联结果,如下所示:
Array ([0] => Array ([id] => 1 [firstname] => Firstname one [lastname] => Lastname one ) [1] => Array ([id] => 2 [firstname] => Firstname two...
这是一个简单的例子,我的实际数组嵌套了 3 次,所以结果是一个巨大的内联字符串 block ,这使得可读性变得困难。
为什么我会得到这样的结果?
最佳答案
发生这种情况仅仅是因为您将纯文本直接打印到您的网页,它会自动重新格式化文本,幸运的是有一个解决方案。
以下代码将“漂亮地打印”您的 PHP 数组。
echo "<pre>".print_r($array, true)."</pre>";
The HTML
<pre>
tag is used for indicating preformatted text. The code tag surrounds the code being marked up.
print_r()
的第二个参数告诉函数捕获 print_r()
的输出而不是将其打印为纯文本。 Learn more on the PHP docs .这两种方法放在一起使输出“美化”。
如 dognose 所述在评论中,如果您不想使用
<pre>
无论出于何种原因,您都可以简单地查看您正在处理的页面的源代码,它会以“漂亮”的方式显示数组。dognose 发布的示例:
功能
我写了一个 pretty-print 功能,可以让你更容易地做到这一点......
function print_p($arr) {
return "<pre>".print_r($arr, true)."</pre>";
}
这可以节省您每次输入预标签的大量时间/精力。用法:
echo print_p($array);
关于PHP print_r 函数不嵌套打印的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531045/