2016-11-17 4 views
0

나는 현재 회사의 API에서 JSON 응답을 받고있어이 같은 PHP 배열로 변환 :다차원 배열을 반복하는 방법은 무엇입니까?

$api_url = file_get_contents('http://example.com'); 
$api_details = json_decode($api_url, true); 

내가 $api_detailsvar_dump을 실행하면,이 무엇입니까 :

array(2) { 
    ["metadata"]=> 
    array(5) { 
    ["iserror"]=> 
    string(5) "false" 
    ["responsetime"]=> 
    string(5) "0.00s" 
    ["start"]=> 
    int(1) 
    ["count"]=> 
    int(99999) 
    } 
    ["results"]=> 
    array(3) { 
    ["first"]=> 
    int(1) 
    ["result"]=> 
    array(2) { 
     [0]=> 
     array(4) { 
     ["total_visitors"]=> 
     string(4) "3346" 
     ["visitors"]=> 
     string(4) "3249" 
     ["rpm"]=> 
     string(4) "0.07" 
     ["revenue"]=> 
     string(6) "0.2381" 
     } 
     [1]=> 
     array(4) { 
     ["total_visitors"]=> 
     string(6) "861809" 
     ["visitors"]=> 
     string(6) "470581" 
     ["rpm"]=> 
     string(4) "0.02" 
     ["revenue"]=> 
     string(7) "13.8072" 
     } 
    } 
    } 
} 

나는 2 가지 일을하려고 노력 중이며 다차원 배열을 사용하는 방법을 알아낼 수 없습니다.

  1. 나는 metadata > iserrorfalse 있는지 확인해야합니다. false가 아니라면 오류 메시지를 표시하고 스크립트를 계속 진행하려고합니다. 이 false 경우

  2. 은, 그때 results > result의 결과를 통해 루프에 원하고 그들 각각의 total_visitors, visitors 등 에코.

배열에서 데이터를 에코하는 방법을 알고 있습니다. 배열에 여러 수준이있을 때 혼란스러워집니다. 올바른 방향으로 날 지점 수

사람이 많이 주시면 감사하겠습니다 :) 당신은 foreach를 사용하여 배열을 반복 할 수

답변

1

. 당신은 여기에서 읽을 수 있습니다 : 당신이 연관 배열을 사용하고 있기 때문에 http://php.net/manual/en/control-structures.foreach.php

, 당신의 코드는 다음과 같이 보일 것이다 :

if ($arr['metadata']['iserror']) { 
    // Display error here 
} else { 
    foreach($arr['results']['result'] as $result) { 
    echo $result['total_visitors']; 
    echo $result['visitors']; 
    } 
} 

당신은 코드에 맞게 조정할해야 정확히 무엇을 당신에게 ' 다시하고 있지만, 이것은 당신을 줄줄 알았어.

희망 하시겠습니까?

관련 문제