1

タイトルが理にかなっていることを願っていますが、私の問題は、このような配列を持つオブジェクトがあることです。これは、例として配列の 1 つにすぎません

    object(stdClass)#6 (3) {
  ["items"]=>
  array(40) {
    [0]=>
    object(stdClass)#7 (22) {
      ["id"]=>
      int(46)
      ["parentId"]=>
      int(0)
      ["name"]=>
      string(22) "Complete monthly wages"
      ["description"]=>
      string(294) "Complete monthly wages<span style=""></span><br /><div>Complete monthly wages<span style=""></span><br /></div><div>Complete monthly wages<span style=""></span><br /></div><div>Complete monthly wages<span style=""></span><br /></div><div>Complete monthly wages<span style=""></span><br /></div>"
      ["tags"]=>
      string(0) ""
      ["projectId"]=>
      int(12)
      ["ownerId"]=>
      int(1)
      ["groupId"]=>
      int(0)
      ["startDate"]=>
      string(19) "2012-09-03T00:00:00"
      ["priority"]=>
      int(2)
      ["progress"]=>
      float(0)
      ["status"]=>
      int(10)
      ["createdAt"]=>
      string(19) "2012-09-03T07:35:21"
      ["updatedAt"]=>
      string(19) "2012-09-03T07:35:21"
      ["notifyProjectTeam"]=>
      bool(false)
      ["notifyTaskTeam"]=>
      bool(false)
      ["notifyClient"]=>
      bool(false)
      ["hidden"]=>
      bool(false)
      ["flag"]=>
      int(0)
      ["hoursDone"]=>
      float(0)
      ["estimatedTime"]=>
      float(0)
      ["team"]=>
      object(stdClass)#8 (3) {
        ["items"]=>
        array(2) {
          [0]=>
          object(stdClass)#9 (1) {
            ["id"]=>
            int(2)
          }
          [1]=>
          object(stdClass)#10 (1) {
            ["id"]=>
            int(1)
          }
        }
        ["count"]=>
        int(2)
        ["total"]=>
        int(2)
      }
    }

ご覧のとおり、チームセクションがあり、これが私の焦点です

["team"]=>
          object(stdClass)#8 (3) {
            ["items"]=>
            array(2) {
              [0]=>
              object(stdClass)#9 (1) {
                ["id"]=>
                int(2)
              }
              [1]=>
              object(stdClass)#10 (1) {
                ["id"]=>
                int(1)
              }
            }
            ["count"]=>
            int(2)
            ["total"]=>
            int(2)
          }
        }

ご覧のとおり、そこには 1 と 2 の 2 つの ID があり、最大 30 程度のものが存在する可能性がありますが、配列全体を検索するように効率的に指示する方法がわかりません。

これを使用すると、ID 1 が id の最初の項目である限り機能しますが、常にそうであるとは限りません。私の目的は、オブジェクトを検索し、ユーザーIDがチーム配列にある場合はコードを実行することです。特にphpとオブジェクトが初めてなので、誰かが私を正しい方向に向けてくれることを願っています

foreach($tasksList->items as $task_details) 
{
    if($task_details->team->items->id === 1)
    {
        echo "My Code";

    }


}
4

1 に答える 1

0

あなたのコード(および上に貼り付けたセクション)は、それが配列[team]であるという事実を見逃しているようです。上のサンプルでは、​​次のようになります。team->items

["team"]=>
  object(stdClass)#8 (3) {
    ["items"]=>
    /* It's an array! */
    array(2) {
     ...
    }
  }

idプロパティを直接持つことはありません。代わりに、以下を繰り返す必要がありますteam->items

foreach ($taskList->items as $task_details) {
  foreach ($task_details->team->items as $key => $value) {
    echo "Team item #: $key ... Team id: $value->id\n";
    if ($value->id === 1) {
       echo "Matched Team ID 1\n";
    }
  }
}
于 2012-09-03T12:03:41.220 に答える