在php foreach循环中访问数组的子元素

时间:2015-02-16 21:54:03

标签: php arrays

我有一个来自API的cURL命令,它为我输出JSON:

curl_setopt($ch, CURLOPT_URL, "https://url.com/Search/search/xref?user=[{%22USER%22:%22userName%22}]");

然后我在输出中使用PHP的jsondecode:

$json = json_decode($answerSearch, true);

我的控制台的响应标签为print_r($json);

提供了此信息
Array (
 [Result] => Array
        (
            [Data] => Array
                (
                    [ReqCompany] => ACME
                    [ReqLocation] => 
                    [Dot] => Array
                        (
                            [0] => Array
                                (
                                    [ComID] => 20388417
                                    [FavoriteColor] => Blue

                                )

                            [1] => Array
                                (
                                    [ComID] => 20388418
                                    [FavoriteColor] => Pink
                                )

                            [2] => Array
                                (
                                    [ComID] => 20388419
                                    [FavoriteColor] => Red
                                )

                        )

                    [XREFSearchOperation] => Exact
                )

        )

)

如何编写foreach循环来遍历此数组的每个元素并输出每个`[FavoriteColor]'?我用一个简单的数组做了很多次,但从来没有多维数组。

我试过这个:

foreach ($json as $i) {
  echo $i['FavoriteColor']; 
}

但我的语法错了。

1 个答案:

答案 0 :(得分:1)

$json是一个只有一个项目Result的数组,另一个数组,只有一个项目,另一个数组Data等。Data有多个项目,其中一个是Dot,它包含你想要的数组。您需要在数组上foreach进一步进入数组:

foreach ($json['Result']['Data']['Dot'] as $i) {
  echo $i['FavoriteColor']; 
}