我正在尝试使用流畅的线
print_r包装在html<pre></pre>
标签中
echo '<pre>',print_r($data),'</pre>';
在
$data = array();
$query = "SELECT * FROM data";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
$result->free();
}
echo '<pre>',print_r($data),'</pre>';
但我得到的是在<pre>
标记的开头和1</pre>
函数末尾的print_r
后跟随输出!
<pre>Array
(
[0] => Array
(
[id] => 1
[age] => 35
[name] => Ben
[sex] => M
)
[1] => Array
(
[id] => 2
[age] => 64
[name] => Rose
[sex] => F
)
[2] => Array
(
[id] => 3
[age] => 31
[name] => Mar
[sex] => F
)
[3] => Array
(
[id] => 4
[age] => 14
[name] => Mollan
[sex] => M
)
) 1</pre>
你可以告诉我最后的1
是什么?为什么会这样?以及如何解决这个问题?
更新
由于什么原因,堆栈溢出输入框在数组结果的末尾没有显示1</pre>
!我将把图像放在这里以供参考。
答案 0 :(得分:2)
您需要通过传递TRUE将print_r的输出作为字符串返回。
echo '<pre>' . print_r($data, TRUE) . '</pre>';
个人printf看起来好一点
printf("<pre>%s</pre>",print_r($data,TRUE));
答案 1 :(得分:1)
您需要使用
print_r($data, true);
第二个参数是您要输出还是返回打印的数组。默认情况下,它设置为false,因此它将打印到位,返回1表示成功。
由于您正在使用print_r
(连接它),因此需要将其作为字符串返回。
答案 2 :(得分:0)
尝试一下:
echo '<pre>'; print_r($data); echo '</pre>';
答案 3 :(得分:-1)
问题出在你的echo语句中,你使用coma而不是句点来联系echo字符串。应该是这样读的:
echo '<pre>' . print_r($data) . '</pre>';