перебор элементов php объекта - PullRequest
1 голос
/ 19 декабря 2011

эта проблема меня смущает, так как я уверен, что синтаксис правильный (хотя явно нет: - /)

У меня есть объект, который выглядит следующим образом ...

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

        )

)

Нет, я пытаюсь извлечь значения из массива 'container'. Для этого у меня есть следующий код ...

//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-> X ...

Notice: Trying to get property of non-object in

Я, честно говоря, не уверен, что я делаю неправильно ... любая помощь, как всегда, очень ценится.

Ответы [ 3 ]

1 голос
/ 19 декабря 2011

Благодаря некоторой пробежке от друга, исправление заключается в следующем ...

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

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

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

    }

    echo"</p>";
1 голос
/ 19 декабря 2011

либо удалите foreach, либо:

foreach( $myDetails as $k=>$v) {
    echo "<b>$k</b>: $v<br />";
}
0 голосов
/ 19 декабря 2011

Переменная myDetails содержит объект, в foreach вы итерируете свойства этого объекта, свойства не объекты, а массивы, так почему вы видите это сообщение об ошибке.

...