迭代通过php对象元素

时间:2011-12-19 10:26:06

标签: php object iteration

这个问题令我困惑,因为我确信语法是正确的(尽管显然不是: - /)

我有一个看起来像这样的对象......

[result]  stdClass Object
(
    [aResult] => stdClass Object
        (
            [status] => 0
            [Message] => Success
            [container] => stdClass Object
                (
                    [a] => a
                    [b] => b
                    [c] => c
                    [d] => d
                    [e] => e
                    [f] => f
                    [g] => g
                    [h] => h
                    [i] => i
                    [j] => j
                )

        )

)

不,我试图提取'容器'数组中的值。为此,我有以下代码......

//pull out array result
    $myDetails = $result->aResult->container;
    foreach( $myDetails as $key)
    {
        echo "<p>";
        echo "<b>a</b>: ".$key->a."<br />";
        echo "<b>b</b>: ".$key->b."<br />";
        echo "<b>c</b>: ".$key->c."<br />";
        echo "<b>d</b>: ".$key->d."<br />";
        echo "<b>e</b>: ".$key->e."<br />";
        echo "<b>f</b>: ".$key->f."<br />";
        echo "<b>g</b>: ".$key->g."<br />";
        echo "<b>h</b>: ".$key->h."<br />";
        echo "<b>i</b>: ".$key->i."<br />";
        echo "<b>j</b>: ".$key->j."<br />";
        echo"</p>";
    }

但我得到的是每个'$ key-&gt; X'调用的以下错误......

Notice: Trying to get property of non-object in

我真的不确定我做错了什么.....任何帮助总是非常感激。

3 个答案:

答案 0 :(得分:1)

删除foreach或:

foreach( $myDetails as $k=>$v) {
    echo "<b>$k</b>: $v<br />";
}

答案 1 :(得分:1)

感谢朋友的一些运动,修复是以下......

//pull out array result
    $myDetails = $result->aResult->container;

    echo "<p>";
    foreach( $myDetails as $key=>$value)
    {

        echo "<b>".$key."</b>: ".$value."<br />";

    }

    echo"</p>";

答案 2 :(得分:0)

变量myDetails包含对象,在foreach中你正在迭代该对象的属性,属性不是对象而是数组,所以为什么你会看到这个错误信息。