2012-10-26 4 views
0

JSON 피드 :JSON PHP를 ForEach

{ 
     "Group": [ 
      { 
      "name": "HolderOne", 
      "operators": [ 
      { 
       "username": "ken", 
       "status": 3 
      }, 
    .....etc..... 

CODE :

<?php 
$json = file_get_content('path to feed'); 
$data=json_decode($json); 

echo $data->cGroup[0]->operators[0]->username; //WORKS! 

if (is_array($data->Group->operators)) 
    { foreach($data->Group->operators as $operator) 
    {if($operator->username == "ken") {echo $operator->status;}} 
    } else { echo 'NOT AN ARRAY'; } //DOESNT WORK - DISPLAYS NOT AN ARRAY 
?> 

나는 사용자 이름이 켄 (또는 내가 더 많은 코드시기를 지정 무엇이든)을 correspoding 상태를 표시하면 말을하려합니다. 그래서

...

echo $data->Group[0]->operators[0]->username; //WORKS! 

하지만 ...이되지 않습니다

foreach($data->Group->operators as $operator) {if($operator->username == "ken") {echo $operator->status;}} 

... - 누군가가 내 문제를 볼 수 있습니다 아마 뭔가 분명하지만?

건배 앤디

답변

1
그것은 Groups 통해 $data->Group[0]->operators, 또는 루프를하고 안에 다른 루프를해야

...

foreach($data->Group as $group){ 
    foreach($group->operators as $operator){ 
     if($operator->username == "ken") {echo $operator->status;} 
    } 
} 
+0

Bazinga ! 감사 빌리, 치료를했습니다. – webservicesco

0

나는 그것이 사실이라고 생각 :

foreach($data["Group"]["operators"] as $operators) 
{ 
    if($operators["username"] == "ken") 
    { 
      echo $operators["status"]; 
    } 
    else 
    { 
      echo 'NOT AN ARRAY'; 
    } 
} 
관련 문제