如何在对象内获取特定的数组

时间:2017-06-14 00:17:45

标签: php arrays json curl

所以我这里有一个来自我的PHP cURL的JSON响应,所以我试图在location下获取特定的数组,具体取决于identifier值{&1} ;检查。

{
"status": "SUCCESS",
"response": {
    "offset": 0,
    "max": 50,
    "count": 2,
    "locations":[
         {
           "identifier":"54320",
           "id": 503892,
           "name":"The Foo"
         },
         {
           "identifier":"54321",
           "id": 503893,
           "name":"The Bar"
         }
    ]
}

这是我迄今为止所做的以及我尝试做的事情。所以我已经解析了上面的json并把它放在foreach上。请注意,标识符并非始终为int,也可以是string

$parsed_json = json_decode($phpCurlResponse, true);
$parsed_json = $parsed_json["response"]["locations"];
    foreach($parsed_json as $key => $pj){
        if($pj['identifier'] == "54320"){
            echo $pj['name'].' & '.$pj['id'];//this should display The Foo & 503892
        }
    }

我已经尝试过这个,它只能在array下看到第一组locations,但是当我将identifier值从54321更改为112233时响应将是Identifier do not exist.你能帮助我实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

您的JSON无效。

  1. locations数组中的最后一个对象之后不应该是逗号。
  2. }关闭数组括号(locations)之后应该有]
  3. 有效的JSON也是如此。

    {
      "status": "SUCCESS",
      "response": {
        "offset": 0,
        "max": 50,
        "count": 2,
        "locations": [
          {
            "identifier":"54320",
            "id": 503892,
            "name":"The Foo"
          },
          {
            "identifier":"54321",
            "id": 503893,
            "name":"The Bar"
          }
        ]
      }
    }
    

答案 1 :(得分:0)

很抱歉过早发布,但我希望你知道上面的代码没有任何问题,它只是在我输入的json响应上有一些拼写错误,无论如何,谢谢你的帮助。 :)这样就可以在对象中获取一组特定的数组,这取决于你要查找的关键值。