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)
          }
        }

正如你所看到的那样,那里有 2 个 id,1 和 2,可能有 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

您的代码(以及您在上面粘贴的部分)似乎错过了array[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 回答