Php,数组打印
我有一个数组:
Array (
[0] => Array (
[userid] => 5
[0] => 5
[firstname] => DALPA
[1] => DALPA
[lastname] => DALPA
[2] => DALPA
)
)
当我尝试使用 foreach 循环打印这个时,我收到一个错误
<?php
include('../conn.php');
$q = $_GET['q'];
$adress = $conn->prepare("SELECT * FROM user WHERE firstname= :q ");
$adress->bindValue(':q', $q, PDO::PARAM_STR);
$adress->execute();
$result = $adress->fetchAll();
foreach($result as $item){
echo $item . "n";
}
?>
错误:Array to string conversion in C:xampphtdocsadminadresadres.php on line 13
被问了很多次,但他们都没有解决我的问题,我该怎么办?
回答
php's echo语句只能回显字符串。例如,如果它不是字符串而是数字,它将尝试将给定值转换为字符串。使用不可能的阵列。
在您的情况下,您正在循环array包含另一个array. 正如错误告诉您的那样,它无法回显数组,因为它需要可以转换为字符串的内容。
所以要么使用
foreach($result as $item) {
print_r($item) // or var_dump($item)
}
或key => value使用回声对
foreach($result as $item) {
echo $item['firstname'] . "n";
echo $item['lastname'] . "n";
... and so on
}
如果您希望只item返回一个,请使用fetch代替更新您的查询fetchAll,这将只返回一行。
然后您可以省略不必要的 foreach 循环。
如果您真的想回显数组,则必须使用手动进行转换json_encode,这会将数组转换为JSON字符串。
echo json_encode( $result );