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 );


以上是Php,数组打印的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>