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

标签 php arrays

这个问题在这里已经有了答案:





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.

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


print_r()的第二个参数告诉函数捕获 print_r() 的输出而不是将其打印为纯文本。 Learn more on the PHP docs .

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

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

dognose 发布的示例:
enter image description here

功能

我写了一个 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/

相关文章:

php - 在 php 中调用同一方法内的方法时出现问题?

java - 将字符串转换为反向 int 数组

javascript - 如何访问 JavaScript 数组中的元素?

PHP $_GET 有效,但 $_POST 回显空白

javascript - 将数组从 ASP 解析为 Javascript,并在 div 标签中输出

java - 排序列表需要很多时间

php - 从 php 到 javascript 传递顺序安全的值

php - 使用通配符改进 mysql 搜索结果。 Joomla 3.3

PHP $_POST 不显示数据 - 显示示例代码

php - 使用php在数据库中插入复选框的id