PHP中的JSON数组定位

时间:2018-10-08 13:39:25

标签: php json

我有一个JSON,我希望以PHP中的其中一个对象(BTCUSD)的“排名”为目标,但是对象排列基于排名是动态的。

以下是JSON输出:

{
    "tickers":[
        {
            "pair":"BTCUSD",
            "timestamp":153900343434,
            "rank":"1",
            "bid":"1234.00",
            "ask":"1234.00"
        },
        {
            "pair":"BTCGBP",
            "timestamp":153900343434,
            "rank":"2",
            "bid":"54321.00",
            "ask":"54321.00"
        },
        {
            "pair":"BTCEUR",
            "timestamp":153900343434,
            "rank":"3",
            "bid":"54321.00",
            "ask":"54321.00"
        }
    ]
}

我目前如何获得所需的结果:

$arr['RESULT'] = getJson('https://example.com/json')['tickers']['0']['rank'];
echo json_encode($arr)

上面的代码可以工作,但是效率不高,因为当一对排名改变时,它会向上移动,而我的代码将仅针对第一个内联而不是BTCUSD对。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

然后应搜索数组。您可以使用array_filter

// Grabbing the json->tickers array
$arr = getJson('https://example.com/json')['tickers'];
// Search the array
$arr = current(array_filter($arr, function($item){
  return $item['pair'] == 'BTCUSD';
}));

echo json_encode($arr['rank']);