在数组中循环遍历数组的最有效方法

时间:2018-05-03 07:24:36

标签: php arrays foreach

有点新手问题,但无论如何我都会问:

目前,当我在数组中有一个数组并且我想得到所有数组的值时,我在foreach循环中使用foreach循环。例如:

$array = [
    $inner_array1 = [1, 2, 3, 4],
    $inner_array2 = [a, b, c, d]
];

foreach ($array as $arr) {
    foreach ($arr as $a) {
        echo $a;
    }
}

有更好,更有效的方法吗?

3 个答案:

答案 0 :(得分:0)

如果您将拥有2个以上嵌套数组

,则可以使用recursive function
$array = [
    'inner_array1' => [1, 2, 3, 4],
    'inner_array2' => ['a', 'b', 'c', 'd']
];

function loop($array){
    foreach($array as $value){
        if(is_array($value)){
            loop($value);
        }else{
            echo $value;
        }
    }
}
loop($array);

Test here

答案 1 :(得分:0)

你看过array_walk_recursive吗?它不一定更有效,但可能会更好,这取决于你想要做什么。

以下是一个使用数组的示例(如上所示)。该示例忽略了键(以匹配您的样本)但它们可用。如果你需要的话,你的样本只会达到一个级别,但你可以让它更多。

<a href="@Url.Action("Action", "Controller")" target="_blank">Link Text</a>

答案 2 :(得分:0)

我必须测试我在评论中写的内容,首先合并数组然后循环它会更快。

$all = array_merge($array["arr1"], $array["arr2"]);
foreach ($all as $a) {
    echo $a;
}

比执行嵌套循环更快。
查看所有方法的结果https://3v4l.org/aFP6o