访问phpforeach循环中数组的子元素


access sub-elements of an array in php foreach loop

我有一个来自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循环来遍历此数组的每个元素并输出每个"[FFavoriteColor]"?我已经用一个简单的数组做过很多次了,但从来没有用多维数组。

我试过这个:

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

但是我的语法是错误的。

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

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