【发布时间】:2020-04-20 17:35:47
【问题描述】:
在 cakephp3.2 php>5 中,我无法让双 foreach 循环正常工作。我尝试了这个简单的测试来证明发生了什么。 $lesson 是一个多维数组,但我只关注它包含的 1 个值。它只经过 1 次迭代。 如您所见,我有一个包含 3 个值的数组。这个双 foreach 循环应该产生 3X3 的输出,但它只产生 4? 为什么双 foreach 循环不能正常循环?
its a multi-dimensional array and i am just using id fields. I want to remove duplicate names using a double foreach
lesson[1][id]='40650'
lesson[1][name]='fred'
lesson[1][name2]='smith'
lesson[2][id]='40651'
lesson[2][name]='fred'
lesson[2][name2]='smith'
lesson[3][name]='40650'
lesson[3][id]='fred2'
lesson[3][name2]='smith'
foreach ($lesson as $key1 =>$item){
debug( $item['id']);
foreach ($lesson as $key2 =>$item2){
debug( $item2['id']);
}
}
\src\Controller\LessonsController.php (line 6429)
(int) 40650
\src\Controller\LessonsController.php (line 6433)
(int) 40650
\src\Controller\LessonsController.php (line 6433)
(int) 40651
\src\Controller\LessonsController.php (line 6433)
(int) 40652
【问题讨论】:
-
分享您的阵列,它的外观如何?
-
ok 添加到 OP 中
-
在查询中使用 group by 或 distinct 以避免重复。
-
我已经在 PHP 5.6 和 7.3 上尝试过你的代码,它运行良好。这真的是全部吗,或者您是否从一些较大的代码中提取了它并且没有完全测试最小的情况?
-
还有其他嵌套的字段/记录在这个问题上没有接近,但它必须例如课程[1][student_record][1]='1'