如何使用随机值数组获取循环JSON值金额

问题描述 投票:0回答:2
{
  "success": 1,
  "return": {
    "1400151861513776": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 138959.22155687,
      "rate": 0.00000085,
      "timestamp_created": "1556464987",
      "status": 0
    },
    "1400151861456538": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 4115.53246448,
      "rate": 0.00000085,
      "timestamp_created": "1556463520",
      "status": 0
    },
    "1400151861402138": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 252.29423504,
      "rate": 0.00000085,
      "timestamp_created": "1556462106",
      "status": 0
    },
    "1400151861205651": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 5735.02289537,
      "rate": 0.00000085,
      "timestamp_created": "1556457111",
      "status": 0
    },
    "1400151861064946": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 608.2294235,
      "rate": 0.00000085,
      "timestamp_created": "1556453555",
      "status": 0
    },
    "1400151860984352": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 13553.51532229,
      "rate": 0.00000085,
      "timestamp_created": "1556451515",
      "status": 0
    },
    "1400151860967764": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 49475.62404601,
      "rate": 0.00000085,
      "timestamp_created": "1556451103",
      "status": 0
    },
    "1400151860901030": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 21474.82564282,
      "rate": 0.00000085,
      "timestamp_created": "1556449399",
      "status": 0
    },
    "1400151860889146": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 2657.50733826,
      "rate": 0.00000085,
      "timestamp_created": "1556449090",
      "status": 0
    },
    "1400151860484795": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 71933.21911691,
      "rate": 0.00000085,
      "timestamp_created": "1556438570",
      "status": 0
    },
    "2400151859280443": {
      "pair": "edc_btc",
      "type": "sell",
      "amount": 266054.68380596,
      "rate": 0.00000088,
      "timestamp_created": "1556408217",
      "status": 0
    },
    "2400151857916444": {
      "pair": "edc_btc",
      "type": "sell",
      "amount": 400000,
      "rate": 0.0000009,
      "timestamp_created": "1556374931",
      "status": 0
    },
    "2400151857916059": {
      "pair": "edc_btc",
      "type": "sell",
      "amount": 400000,
      "rate": 0.00000089,
      "timestamp_created": "1556374923",
      "status": 0
    }
  }
}

如何获取循环值金额..此数组具有随机值1400151861513776 ...每次更改..

我使用PHP代码.. json_decode ..

php arrays json random
2个回答
1
投票
  1. 您可以使用json_decode将JSON转换为数组。 PHP json_decode() $jsonToArray = json_decode($json,true); // $json has the `JSON`
  2. 如果你需要keyamount你可以使用array_walk PHP array_walk() $jsonToArray = json_decode($json,true); $res = []; array_walk($jsonToArray['return'], function($v, $k) use (&$res){ $res[$k] = $v['amount']; });

输出: -

Array
(
  [1400151861513776] => 138959.22155687
  [1400151861456538] => 4115.53246448
   .......
   .......
  [2400151857916444] => 400000
  [2400151857916059] => 400000
)

要么

如果你不需要key,只有amount你可以使用array_map PHP array_map()

$jsonToArray = json_decode($json,true);
$res = [];
array_map(function($v) use(&$res){
  $res[] = $v['amount'];
}, $jsonToArray['return']);

输出: -

 Array
(
  [0] => 138959.22155687
  [1] => 4115.53246448
   .......
   .......
)

1
投票

按照上述步骤获取所需数据。

第1步:使您的数据成为有效的JSON字符串

$json_string = '{
  "success": 1,
  "return": {
    "1400151861513776": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 138959.22155687,
      "rate": 0.00000085,
      "timestamp_created": "1556464987",
      "status": 0
    },
    "1400151861456538": {
      "pair": "edc_btc",
      "type": "buy",
      "amount": 4115.53246448,
      "rate": 0.00000085,
      "timestamp_created": "1556463520",
      "status": 0
    }
  }
}';

在这里,我将您的数据包装在单引号中,使其成为有效的JSON字符串

第2步:使用json_decode函数解码JSON字符串

$decoded_data = json_decode($json_string, $assoc=true);

使用json_decode函数时,请确保将$ assoc标志设置为true。否则它将返回一个对象而不是一个关联数组。

第3步:选择需要循环的数据

$selected_data = $decoded_data["return"];

在这种情况下,它是解码后的JSON中的返回键。

步骤4:循环选定的数据以获取密钥和值

foreach($selected_data as $key=>$value) {
  var_dump($key); # random value like 1400151861513776
}

$ key将保持随机值,如1400151861513776,$ value将保存该键内的数据

© www.soinside.com 2019 - 2024. All rights reserved.