首页 > 解决方案 > 操作 JSON 数组 PHP - 在数组中查找值

问题描述

我有一个通过 API 传入的 JSON 数组。我希望打印出数据,但是对于每个项目,返回的值并不总是在同一个位置。下面是返回的 JSON 示例 - 这只是 JSON 的一部分,它是一个大文件:

"standardSpecification": [
    {
       "Technical": [
            {
                "id": 13501,
                "name": "Performance",
                "description": "XXXXX",
                "value": "standard",
                "items": [
                    {
                        "id": 13502,
                        "name": "maximum speed (km/h)",
                        "value": 169
                    },
                    {
                        "id": 13503,
                        "name": "acceleration 0-62mph (s)",
                        "value": 12.2
                    },
                    {
                        "id": 113502,
                        "name": "maximum speed (mph)",
                        "value": 105
                    }
                ]
            },

我无法使用诸如操纵它之类的东西,因为对于一个项目它可能是正确的,而对于另一个则不是:

echo $tech_array['standardSpecification'][5]['Technical'][11]['items'][8]['value'];

有没有办法找到“性能”,然后打印出所有与之相关的项目?我知道我可以使用 in_array() 和 array_search() 但是我不知道如何返回这些项目。

这可能是一个简单的解决方案,所以希望有人可以帮助手指交叉

标签: phparraysjsondata-manipulation

解决方案


在这种情况下,请尝试以下代码:

<?php
$json = "";//you json api response
$jsonArray = json_decode($json,true);
foreach($jsonArray['standardSpecification'] as $spec){
   foreach($spec['Technical'] as $technical){
      echo "Performance: ".$technical['name'];
   }
}
?>

推荐阅读