使用PHP循环访问JSON数组

时间:2014-12-22 06:23:21

标签: php json

我的代码:

$json2 = json_decode($content, true);
$thing = $json2{"reply1"}->{"tokens"};
foreach ($thing as $laa) {
  echo $laa->token;
}

每当我针对我的JSON运行此代码时,它返回:

PHP Notice:  Trying to get property of non-object in /root/backup.php on line 33
PHP Warning:  Invalid argument supplied for foreach() in /root/backup.php

我想要做的就是遍历JSON并获得一个部分,它是每个[token]的标记。 (从JSON开始)

JSON:

Array
(
    [errors] => Array
        (
        )

    [reply] => success
    [item] => Array
        (
            [status] => CURRENT
            [messageURI] => 
        )

    [reply1] => Array
        (
            [tokens] => Array
                (
                    [0] => Array
                        (
                            [token] => 123456

                        )

                    [1] => Array
                        (
                            [token] => 123456

                                )

感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

您正在访问一个数组。您使用[]执行此操作,而不是使用{}执行此操作。

要获取令牌数组,您需要$json2['reply1']['tokens']

同样,您使用[]访问此数组中的各个项目,而不是->。使用$laa->token;将再次失败。

尝试以下

$tokens = $json2['reply1']['tokens'];

foreach ($tokens as $token) {
  echo $token['token']
}