json解码数组PHP

时间:2016-08-04 08:41:30

标签: php json

我正在尝试解码json字符串,我想获得langlinks值, 我的json字符串是:

{
    "batchcomplete": "",
    "query": {
        "pages": {
            "105219": {
                "pageid": 105219,
                "ns": 0,
                "title": "Cancer",
                "langlinks": [
                    {
                        "lang": "ar",
                        "*": "\u0633\u0631\u0637\u0627\u0646"
                    }
                ]
            }
        }
    }
}

我试过这段代码:

$results = json_decode($api_response, true);
$list = array();
foreach ($results['query']['pages'] as $k => $v)
{
    var_dump($v);
    foreach($v as $key => $val)
    {
       array_push($list, $val);
    } 
}

return $list;

但是当我添加

时,它不会加入我想要的值
var_dump(array_key_exists('langlinks', $v));

它给了我错误的信息:/

2 个答案:

答案 0 :(得分:0)

我刚测试了这个,这似乎返回 river points to | V +-+-+-+-+-+--+ |w|a|t|e|r|\0| +-+-+-+-+-+--+ +-+-+-+-+-+-+ |?|?|?|?|?|?| +-+-+-+-+-+-+ ^ | sea points to

              river points to
              |
              V
+-+-+-+-+-+--+
|w|a|t|e|r|\0|
+-+-+-+-+-+--+

+-+-+-+-+-+--+
|w|a|t|e|r|\0|
+-+-+-+-+-+--+
              ^
              |
              sea points to

如果您仍然遇到问题,也许您可​​以发布更多代码?

答案 1 :(得分:-2)

    $list = array();
    $src = json_decode($api_response, true);


     foreach ($src['query']['pages'] as $key => $langData) {
       foreach ($langData['langlinks'] as $k => $ld);
          // var_dump($ld['*']);
           }

     return $ld['*'];