bugfix> php > 投稿

以下のコードに従って、配列内の配列からデータを取得したい:

{"address":"0x64890972513558cb4e4b4a7f8af48d892fd097b7","ETH":{"**balance**":0,"totalIn":0,"totalOut":0},"countTxs":0,"tokens":[{"**tokenInfo**":{"**address**":"0xad640689e6950b7453729a4686edb3fdfd754616","**name**":"CIChain","decimals":"18","symbol":"CIC","totalSupply":"3000000000000000000000000000","owner":"0xecb64b92ffb5179b47c87d2f105d6eeebb132c68","lastUpdated":1527246490,"issuancesCount":0,"holdersCount":31528,"**price**":false}

私はこの手順を使用していますが、続行できませんでした:

   $address = "0x64890972513558cb4e4b4a7f8af48d892fd097b7"; //$_POST['address'];

$scan_url = 'https://api.ethplorer.io/getAddressInfo/'.$address.'?apiKey=freekey';
$scan_json = file_get_contents($scan_url);
$scan_array = json_decode($scan_json, true);
foreach($scan_array['tokens'] as $key => $eth) { 
    foreach($eth['tokenInfo'] as $key => $etth) {  
  echo $etth['name'];  
}}

私はネストされたデータを取得するにはどうすればよいですか?

回答 1 件
  • 指定されたURLに従って、以下のようにコードを変更する必要があります

    $scan_array = json_decode($scan_json, true);
    foreach($scan_array['tokens'] as $key => $eth) { 
        echo $eth['tokenInfo']["name"]. "\n";
    }
    
    

    ライブデモ

    2番目の foreach   tokenInfo からすべての要素を提供しています  そのため、内側の foreach を使用する必要はありません  または、すべての要素を取得するために $etth['name'] のように使用する必要はありません  これ、 $etth のみ  与えるだけで十分です。

あなたの答え