如果一个foreach在另一个内部,两个foreach函数如何工作?

时间:2017-09-12 13:14:11

标签: php foreach

我无法理解两个foreach函数如果其中一个在另一个里面的逻辑,例如:

foreach ($projects as $project){
    foreach ($users as $user){

    }
}

当第一个foreach获得一个项目时,所有用户的foreach将通过所有用户直到它没有,然后返回并重复?或者当它找到第一个用户时?

这似乎是一个非常基本的问题,但我无法在其他地方找到它。

1 个答案:

答案 0 :(得分:2)

你可以自己试试,非常简单。只需编写两个虚拟数组,然后用两个循环遍历它们。以下是一个例子。

  1. 它会找到一个项目。
  2. 将为找到的每个用户对象执行内部foreach用户循环
  3. 它会找到下一个项目
  4. 它将再次运行项目的内部foreach循环。
  5. 我想对此说些什么:

    <?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>";
        }
    }
    

    输出:

    value1
    value1.1
    value2.1
    value3.1
    value2
    value1.1
    value2.1
    value3.1
    value3
    value1.1
    value2.1
    value3.1