Php 如果一个foreach在另一个foreach中,两个foreach函数如何工作
如果两个foreach函数中的一个在另一个内部,我无法理解它们如何协同工作的逻辑,例如:Php 如果一个foreach在另一个foreach中,两个foreach函数如何工作,php,foreach,Php,Foreach,如果两个foreach函数中的一个在另一个内部,我无法理解它们如何协同工作的逻辑,例如: foreach ($projects as $project){ foreach ($users as $user){ } } 当第一个foreach获得一个项目时,所有用户中的foreach将遍历所有用户,直到没有项目,然后返回并重复?或者当它也找到第一个用户时 这似乎是一个非常基本的问题,但我无法在其他地方找到它。您可以自己尝试,它非常简单。只需编写两个伪数组并使用两个循环对其进行迭
foreach ($projects as $project){
foreach ($users as $user){
}
}
当第一个foreach获得一个项目时,所有用户中的foreach将遍历所有用户,直到没有项目,然后返回并重复?或者当它也找到第一个用户时
这似乎是一个非常基本的问题,但我无法在其他地方找到它。您可以自己尝试,它非常简单。只需编写两个伪数组并使用两个循环对其进行迭代。下面是一个例子
<?php
$array1 = array(
"element1" => "value1",
"element2" => "value2",
"element3" => "value3"
);
$array2 = array(
"element1.1" => "value1.1",
"element2.1" => "value2.1",
"element3.1" => "value3.1"
);
foreach($array1 as $arr1) {
print_r($arr1);
echo "<br>";
foreach($array2 as $arr2) {
print_r($arr2);
echo "<br>";
}
}
如果您不理解,请使用
echo
添加调试,看看会发生什么。想想二维矩阵(普通网格)。在PHP 5中,当foreach首次开始执行时,内部数组指针会自动重置为数组的第一个元素。[…]在PHP7中,foreach不使用内部数组指针。外部foreach循环的每次迭代都执行内部foreach循环,而内部foreach循环的每次迭代都执行内部foreach循环体(在您的示例中,内部循环体是空的)。我如何打破它?在本例中有3个值,但如果有5000个值呢?如果我在第二节找到了我想要的结果,我不想让它全部通过。是否存在某种中断函数/代码或返回值
停止它?您可以使用中断代码>。。。但老实说,我不太确定这是否适合你。你能解释一下你想做什么吗?您是否正在尝试对两个以上的SQL查询结果进行评分?我正在使用laravel,并且我正在尝试为每个为每个具体项目工作的用户查找用户工资。我已经建立了关系和一切,但只是不知道两个或更多的foreach如何在彼此内部工作。但是非常感谢!如果数据存储在数据库中,并且您有一些外键关系,那么您应该真正了解有关SQL Join
-它允许您将两个表连接在一起,因此您只有一个结果集。这只会导致一个foreach循环,它将减少网站的加载时间。
value1
value1.1
value2.1
value3.1
value2
value1.1
value2.1
value3.1
value3
value1.1
value2.1
value3.1