有点新手问题,但无论如何我都会问:
目前,当我在数组中有一个数组并且我想得到所有数组的值时,我在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;
}
}
有更好,更有效的方法吗?
答案 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);
答案 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。