我有一个简单的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等。因此,结果的结构方式与源代码的结构方式之间存在差异。我想更改数组的源代码结构,使其看起来像实际结果。
答案 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
说明:
输出看起来像这样,因为<pre>
确实设置了固定宽度,而white-space: pre;
如果删除white-space: pre;
,则应以如下输出结束:
如果您在浏览器中检查元素,则元素仍将全部排在一行中
但是,如果您尝试在浏览器检查器中编辑元素,则该元素将不会显示在一行中。
因此,我的答案是,我认为这是由浏览器进行的优化。 可能是这样,您可能会看到更多其他HTML或出于其他原因... (我在Firefox上顺便说一句。)