无法回显数组:只能打印它:并且只​​回显特定数组

时间:2015-02-24 09:00:05

标签: php arrays codeigniter

<?php 
foreach ($recorded as $rows ) 
    {
        echo "<pre>";
        print_r ($rows); 
        echo "</pre>";

        echo "<img src='".base_url()."upload/thumbs/".$rows->file_name."'/>";
    } 
?>

当我打印$rows时,结果是:

Array
(
    [0] => stdClass Object
        (
            [file_name] => steve-big.jpg
        )

    [1] => stdClass Object
        (
            [file_name] => steve1-big.jpg
        )

    [2] => stdClass Object
        (
            [file_name] => steve2-big.jpg
        )

    [3] => stdClass Object
        (
            [file_name] => steve3-big.jpg
        )

)

Array
(
    [0] => stdClass Object
        (
            [file_name] => size-5-5-width-m.jpg
        )

    [1] => stdClass Object
        (
            [file_name] => 3316783.jpg
        )

    [2] => stdClass Object
        (
            [file_name] => 3316786.jpg
        )

    [3] => stdClass Object
        (
            [file_name] => 3316792.jpg
        )

)

但为什么我不能回应呢?

我正在使用codeIgniter,这是我收到的错误消息:

  

遇到PHP错误|严重性:通知|消息:尝试获取非对象的属性|文件名:views / mothershop.php |行号:17

但如果我给它一个特定的数字,我只能回应它:$rows[0]->file_name$rows[1],依此类推。

请帮助,这真让我感到困惑。

7 个答案:

答案 0 :(得分:2)

我们可以看到$rows再次包含数组。所以你不能echo它。相反,您必须使用print_recho必须迭代$row数组。请尝试以下代码。

<?php 
foreach ($recorded as $rows ) 
    {
        // echo "<pre>";
        // print_r ($rows); 
        // echo "</pre>";
        foreach ($rows as $r) 
        {
            echo "<img src='".base_url()."upload/thumbs/".$r->file_name."'/>";
        } 
     }
?>

这可能会对你有帮助。

答案 1 :(得分:2)

这应该适合你:

foreach ($recorded as $rows) 
    array_walk($rows, function($v){
        echo "<img src='" . base_url() . "upload/thumbs/" . $v->file_name . "'/>";
    });

答案 2 :(得分:1)

<?php 
foreach ($recorded as $rows=>$val ) 
    {
       echo $val['file_name'].'<br/>';
    } 
?>

答案 3 :(得分:0)

检查错误:

A PHP Error was encountered | Severity: Notice | Message: Trying to get property of non-object | Filename: views/mothershop.php | Line Number: 17

因为$rows是一个数组,并且没有名为file_name的属性。

答案 4 :(得分:0)

尝试此代码

<?php 
foreach ($recorded as $rows ) 
    {
        echo "<img src='".base_url()."upload/thumbs".$rows['file_name']."'/>";
    } 
?>

答案 5 :(得分:0)

尝试再次重申行 因为结果的数组结构是二维数组

foreach ($recorded as $rows ) {

    foreach ($rows as $key => $value) {
        echo "<img src='".base_url()."upload/thumbs/".$value->file_name."'/>";  
    }

}

答案 6 :(得分:0)

试试这个:

$baseUrl = base_url();
foreach ($recorded as &$rows) {
    foreach ($rows as &$row) {
        echo '<img src="'.$baseUrl.'upload/thumbs/'.$row->file_name.'"/>';
    } 
}