PHP:从复杂的JSON对象获取元素

PHP:从复杂的JSON对象获取元素,php,json,Php,Json,我正在尝试创建一个交易机器人,在这一点上,我应该得到加密货币市场的当前市场价值 此时,我想获取这个JSON数组中的嵌套参数“Last”: array(3) { ["success"]=> bool(true) ["message"]=> string(0) "" ["result"]=> array(1) { [0]=> array(13) { ["MarketName"]=> s

我正在尝试创建一个交易机器人,在这一点上,我应该得到加密货币市场的当前市场价值

此时,我想获取这个JSON数组中的嵌套参数“Last”:

array(3) { ["success"]=> bool(true) 
           ["message"]=> string(0) "" 
           ["result"]=> array(1) { 
                  [0]=> array(13) { ["MarketName"]=> string(8) "USDT-BTC" 
                                    ["High"]=> float(17399.99999999) 
                                    ["Low"]=> float(16166) 
                                    ["Volume"]=> float(7200.55684465)                    
                                    ["Last"]=> float(16486.5864853) 
                                    ["BaseVolume"]=> float(119420929.2692) 
                                    ["TimeStamp"]=> string(21) "2017-12-12T20:36:19.2"                          ["Bid"]=> float(16484)  
                                    ["Ask"]=> float(16486.5864853)                    
                                    ["OpenBuyOrders"]=> int(12858) 
                                    ["OpenSellOrders"]=> int(5529) 
                                    ["PrevDay"]=> float(17369.85623056) 
                                    ["Created"]=> string(23) "2015-12-11T06:31:40.633" 
                                   } 
                                }
             }
如何获取并显示它

这是我获取和解码数组的脚本

  private function send($method = null , $args = array() , $secure = true) {
  if(empty($method)) return array("status" => false , "error" => "method was not defined!");

  if($secure) $args["apikey"] = $this->apiKey;
  $args["nonce"] = time();

  $urlParams  = array();
  foreach($args as $key => $val) {
    $urlParams[]  = $key . "=" . $val;
  }

  $uri  = $this->baseUrl . $method;

  $argsString = join("&" , $urlParams);
  if(!empty($urlParams)) {
      $uri  = $uri . "?" . $argsString;
  }

  $sign = $secure == true ? hash_hmac('sha512',$uri,$this->apiSecret) : null;

  $uri = trim(preg_replace('/\s+/', '', $uri));
  $ch = curl_init($uri);
  if($secure) curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $execResult = curl_exec($ch);

  if(curl_error($ch))
  {
      return array("status" => false , "error" => curl_error($ch));
  }

  $obj = json_decode($execResult, true);
  return $obj["result"];
我成功地显示了参数[“result”]:如何显示嵌套在其中的内容?
提前谢谢。

您可以测试$obj[“result”]是否是一个数组,然后对其进行迭代,并继续向下搜索,直到找到所需的内容

if(is_array($obj["result"])) {
    foreach($obj["result"] as $key => $thing) {
          // do something with the $thing
          // or do a 'defined()' check to see if the key(s)
          // inside the object are there.   
          if(isset($thing["Last"])) {
              // do something fancy with your new found info..  
          }
    }
}
或者直接解决这个问题

$obj["result"][0]["Last"]  

与访问初始数组的“result”元素的方式类似,您可以访问嵌套数组中的“last”元素,如下所示:

$obj['result'][0]['Last'];

首先查看$obj['result'],它是一个数组,然后访问元素0,它也是一个数组。然后你访问这个数组的最后一个键。

<代码> $Obj[[结果] ] [0 ] [最后一个] <代码>?非常感谢,我没有考虑(0),这使我感到困惑。