2016-11-15 11 views
-1

Ich habe ein Problem mit einer decodierten JSON-Antwort: Ich weiß nicht, wie man jeden Wert aus dem JSON-decodierten Array in PHP extrahiert.Werte aus JSON-Array extrahieren

Mein Skript ist wie folgt:

$adresse= $_POST['address']; 
$url = 'http://my/host/folder/api'; 
$data = array(
    "value" => $adresse, 
); 
$data_string = json_encode($data); 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_USERPWD, "some_user:somepassword"); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, 
       array('Content-Type:application/json', 
        'Content-Length: ' . strlen($data_string)) 
       ); 
$resp = curl_exec($ch); 
curl_close($ch); 
$json_response = var_dump(json_decode($resp, true)); 
echo 'test = '.$json_response[1]['zipcode']; 

Dieser Code ein Array wie folgt zurückgibt:

array(1) { 
    ["eligibilities"]=> array(1) { 
     [0]=> array(2) { 
      ["address"]=> array(5) { 
       ["zipcode"]=> string(5) "60000" 
       ["city"]=> string(9) "SomeCITY" 
       ["streetName"]=> string(17) "SomeSTreetName" 
       ["streetNumber"]=> string(2) "17" 
       ["idRA"]=> string(10) "SomeIDRA" 
      } 
      ["broadBand"]=> array(5) { 
       ["eligible"]=> bool(true) 
       ["type"]=> string(10) "SomeType" 
       ["maxDownstream"]=> int(20000) 
       ["maxUpstream"]=> int(1000) 
       ["tvEligible"]=> bool(false) 
      } 
     } 
    } 
} 
jeden Wert in diesem Array in Variablen

Ich möchte analysieren, damit ich mit dem Ergebnis arbeiten können .

Antwort

0

Beachten Sie, dass var_dump keinen Wert zurückgibt, so dass, wenn Sie dies tun:

$json_response = var_dump(json_decode($resp, true)); 

... dann wird $json_responsenull sein.

Um Zugriff auf diese inneren Werte zu erhalten, vergessen Sie nicht, dass mehrere verschachtelte Ebenen in Ihre Daten involviert sind und Sie den Schlüssel jeder Ebene angeben müssen. So tun:

$result = json_decode($resp, true); 
var_dump($result); 
echo 'test = ' . $result['eligibilities'][0]['address']['zipcode']; 

NB: rufen Sie nicht Ihre Variable $json_responce nach dem json_decode, denn dann ist es nicht mehr JSON, aber eine native PHP-Array.