繁体   English   中英

PHP print_r函数不嵌套打印的数组

[英]PHP print_r function does not nest the printed array

我使用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...

这是一个简单的例子,我的实际数组嵌套了三次,因此结果是一个巨大的内联字符串块,使可读性变得困难。

为什么我会得到这样的结果?

这种情况只是因为您将明文直接打印到您的网页,自动重新格式化文本,幸运的是有一个解决方案。

以下代码将“漂亮地打印”您的PHP数组。

echo "<pre>".print_r($array, true)."</pre>";

HTML <pre>标记用于指示预格式化的文本。 代码标记包围正在标记的代码。

https://www.tutorialspoint.com/html/html_pre_tag.htm

print_r()的第二个参数告诉函数捕获print_r()的输出而不是将其打印为纯文本。 了解有关PHP文档的更多信息

将这两种方法放在一起使输出“美化”。


正如评论中的dognose所指出的,如果你不想出于任何原因使用<pre>标签,你可以简单地查看你正在处理的页面的源代码,它将以“漂亮”的方式显示数组。

dognose发布的示例: 在此输入图像描述


功能

我写了一个漂亮的打印功能,可以让你更轻松地做到这一点......

function print_p($arr) {
    return "<pre>".print_r($arr, true)."</pre>";
}

这可以节省您每次输入预标签的大量时间/精力。 用法:

echo print_p($array);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM