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

时间:2018-01-30 21:45:47

标签: php arrays

我使用select[disabled] { pointer-events: none; }函数来打印从数据库中的表中获取的数组。而不是像这样的格式良好的数组:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">
  <input name="name" disabled placeholder="click me">
</div>
<div class="parent">
  <select name="thing" disabled>
    <option value="1">1</option>
  </select>
</div>

我得到了内联结果,如下:

print_r

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

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

1 个答案:

答案 0 :(得分:7)

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

以下代码将&#34;漂亮的打印&#34;你的PHP数组。

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

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

     

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

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

将这两种方法组合在一起使得输出被“美化”#34;。

正如评论中dognose所述,如果您因任何原因不想使用<pre>标记,只需查看您正在处理的网页的源代码即可它会将数组显示在&#34; nice&#34;方式。

dognose发布的示例: enter image description here

功能

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

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

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

echo print_p($array);