迭代集合CakePHP 3

迭代集合CakePHP 3,php,collections,iteration,cakephp-3.0,Php,Collections,Iteration,Cakephp 3.0,我有一个数组,我用CakePHP 3从中创建一个集合,然后使用match提取一个新集合,其中只包含id=2的元素。 我无法理解的是,在使用match之后,如果我使用each对原始集合进行迭代,我会看到id=2的元素\ 它不应该从原始收藏中删除吗 我如何迭代我的新集合?因为每个、编译、foreach都不工作,当我使用debug时,我得到的只是 \src\Controller\ComlibsController.php (line 51) object(Cake\Collection\Collect

我有一个数组,我用CakePHP 3从中创建一个集合,然后使用match提取一个新集合,其中只包含id=2的元素。 我无法理解的是,在使用match之后,如果我使用each对原始集合进行迭代,我会看到id=2的元素\

它不应该从原始收藏中删除吗

我如何迭代我的新集合?因为每个、编译、foreach都不工作,当我使用debug时,我得到的只是

\src\Controller\ComlibsController.php (line 51)
object(Cake\Collection\Collection) {

'count' => (int) 0

}
集合代码id:

           //get the current answer and remove it from the query array
    $mycollection = new Collection($query[0]['answers']);
          $answer = $mycollection->match(['answers.id' => $theid]);
食谱并不像他们所说的那么简单

任何形式的帮助都将不胜感激

  • 对集合执行匹配将返回一个包含匹配元素的新集合,但不会以任何方式更改原始集合

  • 创建集合时,指定的是
    ['answers']
    键,这意味着该键不再是集合中元素的路径的一部分。因此,您只需执行
    ->match(['id'=>$theid])
    即可找到匹配项