在PhP中将Array与Json结合起来

时间:2018-04-03 06:07:15

标签: arrays json match indexof

我正在使用以Json格式获取数据的API。

[
  {
       “id”:“比特币”,
       “名称”:“比特币”,
       “符号”:“BTC”,
       “等级”:“1”,
       “price_usd”:“7365.07”,
       “price_btc”:“1.0”,
       “24h_volume_usd”:“4900640000.0”,
       “market_cap_usd”:“124873929597”,
       “available_supply”:“16954887.0”,
       “total_supply”:“16954887.0”,
       “max_supply”:“21000000.0”,
       “percent_change_1h”:“0.55”,
       “percent_change_24h”:“5.92”,
       “percent_change_7d”:“ - 7.93”,
       “last_updated”:“1522733968”,
       “price_eur”:“5987.30108524”,
       “24h_volume_eur”:“3983887076.48”,
       “market_cap_eur”:“101514013335”
   },
   {
      “id”:“ethereum”,
      “名字”:“以太坊”,
      “符号”:“ETH”,
      “等级”:“2”,
      “price_usd”:“397.12”,
      “price_btc”:“0.0541563”,
      “24h_volume_usd”:“1216740000.0”,
      “market_cap_usd”:“39149486407.0”,
       “available_supply”:“98583517.0”,
      “total_supply”:“98583517.0”,
      “max_supply”:null,
      “percent_change_1h”:“0.07”,
      “percent_change_24h”:“3.51”,
     “percent_change_7d”:“ - 15.33”,
     “last_updated”:“1522733953”,
      “price_eur”:“322.83155584”,
      “24h_volume_eur”:“989126881.68”,
       “market_cap_eur”:“31825870284.0”
    }
   ]

另一方面,我有对象阵列

Array

(     [0] => stdClass对象         (             [id] => 42             [user_id] => 39             [coin_rank] => 2         )

[1] => stdClass Object
    (
        [id] => 3
        [user_id] => 39
        [coin_rank] => 6
    )

[2] => stdClass Object
    (
        [id] => 8
        [user_id] => 39
        [coin_rank] => 8
    )



我只想从数组索引值匹配硬币等级数组键 coin_rank 的Json数组。

如果排名和硬币排名匹配,则只获取以太坊数组。否则被忽视

左。如果你没有明白我的意思,请毫不犹豫地问我。

此致

1 个答案:

答案 0 :(得分:0)

运行循环并在json数组中找到rank键。

       $jsonArr = json_decode($json, true);
       $new = array();
       foreach($arr as $v){
           $key = array_search($v->coin_rank, array_column($jsonArr, 'rank'));
           if($key !== false){
               $new[] =  $jsonArr[$key];
           }
       }
       print_r($new);

Demo