0

JSONフィード:

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

コード:

 <?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
 ?>

ユーザー名がKen(またはさらにコーディングするときに指定するもの)であるかどうかを言いたいのですが、対応するステータスを表示します。

それで...

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

しかし...

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

...そうではありません-おそらく何か明らかなことですが、誰かが私の問題を見ることができますか?

乾杯アンディ

4

2 に答える 2

1

それは、である必要があります$data->Group[0]->operators、またはループして、Groups内部に別のループがあります...

foreach($data->Group as $group){
    foreach($group->operators as $operator){
        if($operator->username == "ken") {echo $operator->status;}
    }
}
于 2012-10-26T18:12:44.997 に答える
0

私はそれが本当だと思います:

foreach($data["Group"]["operators"] as $operators)
{
     if($operators["username"] == "ken")
     {
          echo $operators["status"];
     }
     else
     {
          echo 'NOT AN ARRAY';
     }
}
于 2012-10-26T19:20:35.570 に答える