如何在多行源代码中显示print_r结果

时间:2019-06-09 17:37:00

标签: php

我有一个简单的php代码,它可以更改数组中名称的顺序。

$arr = [
    "Meier, Peter",
    "Schulze, Monika",
    "Schmidt, Ursula",
    "Brosowski, Klaus",
];

foreach($arr as $name => $name2) 
{
    $vname = explode(", ", $name2); 
    $new = array_reverse($vname);
    $arr[$name] = implode(", ", $new); 
}

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

基本上,我想编辑代码,即源代码不在一行中显示数组,而是在几行中显示(每个名+姓各一个),如下所示:

Array
(
    [0] => Peter, Meier
    [1] => Monika, Schulze
    [2] => Ursula, Schmidt
    [3] => Klaus, Brosowski
)

现在,源代码仅在一行中显示出出色的相同结果。是否可以通过这种方式修改print_r命令?

最好的问候

为澄清起见进行编辑: 结果,我的代码给出了我也在问题中发布的数组。在html源代码中,同一数组位于一行中[0] => Peter,Meier [1] => Monika,Schulze等。因此,结果的结构方式与源代码的结构方式之间存在差异。我想更改数组的源代码结构,使其看起来像实际结果。

2 个答案:

答案 0 :(得分:1)

您可以使用nl2br()函数将来自print_r的line_breaks用于html

echo nl2br(print_r($arr, true));

或者您使用以下方法构建List函数

echo '<ul>'.PHP_EOL;
foreach($arr as $name){
    echo "<li>{$name}</li>".PHP_EOL;
}
echo '</ul>'.PHP_EOL;

答案 1 :(得分:0)

我想我发现了你想说的话:

输出基于来自@tcj的https://3v4l.org/LLvZW

  • 使用print_r打印时,您的输出如下所示: List item

  • 当您在浏览器中检查HTML元素时,检查器将显示以下内容:

    (注意:所有内容都在一行中) enter image description here

说明:

输出看起来像这样,因为<pre>确实设置了固定宽度,而white-space: pre; 如果删除white-space: pre;,则应以如下输出结束:

enter image description here

如果您在浏览器中检查元素,则元素仍将全部排在一行中

但是,如果您尝试在浏览器检查器中编辑元素,则该元素将不会显示在一行中。

<code>white-space: pre;</code>

因此,我的答案是,我认为这是由浏览器进行的优化。 可能是这样,您可能会看到更多其他HTML或出于其他原因...  (我在Firefox上顺便说一句。)