我想知道如何在PHP中为每个循环传递多个数组。
例如,在下文中,我希望为每个循环传递$array1
和$array2
,而不是将每个循环写入两次。
$array1 = somestring;
$array2 = someotherstring;
foreach ($array1 as $vals) {
//do something cool
}
编辑:为了澄清,我知道数组声明无效。它只是一个占位符。这不值得投票。我想用$ array1运行整个foreach循环,然后用$ array2再次运行它。
答案 0 :(得分:0)
$array3 = array_merge($array1, $array2);
foreach ($array3 as $vals) {
// do your coolness
}
答案 1 :(得分:0)
您可以使用array_map(null, $array1, $array2)
压缩两个索引数组。这样您就会有一个 tuples 列表,其中第一个元素来自$array1
,第二个元素来自$array2
。您可以迭代此列表并在一次迭代中访问两个数组元素。
$array1 = [1, 2, 3];
$array2 = [1, 2, 3];
$zip = array_map(null, $array1, $array2);
foreach ($zip as $tuple) {
echo $tuple[0], '-', $tuple[1], PHP_EOL;
}
这是demo。
请注意,您的阵列(在本例中为列表)必须是相同的长度。另一方面,你最终会遇到损坏的tuples,其中一个元素将是null
。