PHP将多个值传递给foreach函数

时间:2016-05-18 21:15:03

标签: php foreach

我想知道如何在PHP中为每个循环传递多个数组。

例如,在下文中,我希望为每个循环传递$array1$array2,而不是将每个循环写入两次。

$array1 = somestring;
$array2 = someotherstring;

foreach ($array1 as $vals) {
    //do something cool
}

编辑:为了澄清,我知道数组声明无效。它只是一个占位符。这不值得投票。我想用$ array1运行整个foreach循环,然后用$ array2再次运行它。

2 个答案:

答案 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