我使用该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
)
)
Run Code Online (Sandbox Code Playgroud)
我得到了内联结果,如下所示:
Array ([0] => Array ([id] => 1 [firstname] => Firstname one [lastname] => Lastname one ) [1] => Array ([id] => 2 [firstname] => Firstname two...
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子,我的实际数组嵌套了三次,因此结果是一个巨大的内联字符串块,使可读性变得困难.
为什么我会得到这样的结果?
这种情况只是因为您将明文直接打印到您的网页,自动重新格式化文本,幸运的是有一个解决方案.
以下代码将"漂亮地打印"您的PHP数组.
echo "<pre>".print_r($array, true)."</pre>";
Run Code Online (Sandbox Code Playgroud)
HTML
<pre>标记用于指示预格式化的文本.代码标记包围正在标记的代码.
第二个参数print_r()告诉函数捕获输出print_r()而不是将其打印为明文.了解有关PHP文档的更多信息.
将这两种方法放在一起使输出"美化".
正如评论中的dognose所指出的,如果你不想<pre>出于任何原因使用标签,你可以简单地查看你正在处理的页面的源代码,它将以"漂亮"的方式显示数组.
我写了一个漂亮的打印功能,可以让你更轻松地做到这一点......
function print_p($arr) {
return "<pre>".print_r($arr, true)."</pre>";
}
Run Code Online (Sandbox Code Playgroud)
这可以节省您每次输入预标签的大量时间/精力.用法:
echo print_p($array);
Run Code Online (Sandbox Code Playgroud)