PHP - 无法回显返回数组中的值

时间:2012-06-06 10:18:47

标签: php mysql arrays foreach pdo

我有一个从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;

我试图像这样回显出该数组中的$值:

$resultarray = get_post_data($post_id);

print_r($resultarray);

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

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

替换此行

$resultarray[] = $row;

用这个:

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

答案 2 :(得分:0)

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