2016-04-19 11 views
0

Ich habe eine json Rendite, die wie folgt aussieht:PHP foreach über JSON mit Array

[output] => stdClass Object 
    (
     [data] => stdClass Object 
      (
       [Email] => Array 
        (
         [0] => [email protected] 
         [1] => [email protected] 
        ) 

       [PhoneNumber] => Array 
        (
         [0] => 2031234569 
        ) 

      ) 

Was ich tun müssen, ist durch die Telefone und E-Mails zu Schleife in der Lage sein und bekommen sie alle.

Ich habe versucht:

foreach ($json_result->output->data as $data) { 
$phone = $data->PhoneNumber; 
$email = $data->Email; 
} 

aber kehrt leer. Jeder hat eine Idee?

+0

Ihr Beispielcode nicht „Rückkehr“ nichts, es ist nur ein paar Variablenzuweisungen. Was versuchst du mit '$ phone' und' $ email' zu tun? – miken32

Antwort

1

Sie versuchen, auf PhoneNumber und Email als Eigenschaften zuzugreifen, während sie Arrays sind.

foreach ($json_result->output->data->Email as $email_address) { 
    echo $email_address; 
} 

foreach ($json_result->output->data->PhoneNumber as $phone_number) { 
    echo $phone_number; 
} 
+0

'PhoneNumber' und' Email' sind Eigenschaften des Objekts. Sie selbst sind Arrays, aber mit seinem ursprünglichen Code war nichts falsch. – miken32

1

Der einfachste Weg ist JSON Ihr std Objekt kodieren und es dann zu einem Array dekodieren zurück:

$array = json_decode(json_encode($object), true); 
foreach($array as $data) { 
    $phone = $data->PhoneNumber; 
    $email = $data->Email; 
}