2017-12-12 5 views
-1

私はトレーディングボットを作成しようとしています。この時点で、私は暗号化市場の現在の市場価値を取得する必要があります。私は、このJSON配列内のネストされたパラメータ「最終」を取得したいと思います。この時点でPHP:複雑なJSONオブジェクトから要素を取得

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"]; 

をデコードするスクリプトは次のとおりです。どのように私はそれの中にネストされたものを表示することができますか? ありがとうございます。

+1

'$ obj [" result "] [0] ['Last']'? – kerbholz

答えて

2

にそれに対処しようとすると、次のようなネストされた配列に「最後の」要素にアクセスすることができますこれは配列である$ obj ['result']を見て、配列でもある要素0にアクセスしています。この配列の 'last'キーにアクセスしています。

+1

リトルノート:OPコードの "Last"です。 – kerbholz

+0

ありがとう、私は[0]を考慮しなかったし、これは私を混乱させる。 –

-1

$ 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"] 
関連する問題