【问题标题】:PHP - Unable to echo out values in returned arrayPHP - 无法在返回的数组中回显值
【发布时间】:2012-06-10 08:30:10
【问题描述】:

我有一个函数,它从 Mysql 数据库中检索数据,将值存储在一个数组中,然后将该数组返回给调用函数。

$stmt = $dbh->prepare("SELECT img_file_name FROM mjbox_images JOIN mjbox_posts USING (post_id) WHERE post_active = 0 AND post_id = ? ");
        $stmt->bindParam(1,$post_id);
        $stmt->execute();

        $resultarray = array();

        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

                $resultarray[] = $row;
        }

        return $resultarray;

我正在尝试像这样在该数组中回显 $values:

$resultarray = get_post_data($post_id);

print_r($resultarray);

foreach($resultarray as $key => $value){
    echo 'The value is: '. $value . '<br />';
}

但是当我浏览网页时,它只会回显“数组”。 当我 print_r 数组时,值肯定在数组中。那么如何正确显示这些值呢?

【问题讨论】:

  • 取决于数组结构,像使用 foreach 一样循环遍历它

标签: php mysql arrays foreach pdo


【解决方案1】:

替换这一行

$resultarray[] = $row;

用这个:

$resultarray[] = $row['img_file_name'];

【讨论】:

  • print_r的结果是ok的,但是他echo的结果是Array
【解决方案2】:

有道理。当您将$row 保存到您的数组时,您实际上是在创建一个二维数组。 $row 是一个数组,即使您只选择了一个值。如果您只想保存您选择的图像文件名,请将$row['img_file_name']保存到数组中,而不是$row

或者,回显$value['img_file_name'] 而不是$value

【讨论】:

    【解决方案3】:
    foreach($resultarray as $row){
        foreach($row as $key=>$value) {
            echo 'The value is: '. $value . '<br />';
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      • 2021-04-18
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2018-04-04
      相关资源
      最近更新 更多