PHP foreach多个数组

时间:2018-02-22 18:32:39

标签: php arrays loops foreach

您好我在foreach循环中一直处于亏损状态。我要做的是在foreach循环中有多个数组。

我在互联网上可以找到的是如何从数组中获取单个值。我设法让两个人合作:

foreach (array_combine($slides, $headers) as $slide => $header)

但这只限于两个阵列。我只想列出两个以上数组的列表。

1 个答案:

答案 0 :(得分:0)

由于array_combine适用于两个数组,这意味着您希望元素位于相同的位置,因此您可以使用相同的键:

foreach ($slides as $key => $slide) {
   echo $slide;
   echo $headers[$key];
   echo $another[$key];
   //etc...
}

如果密钥可能不匹配,则在循环之前重新索引:

$slides  = array_values($slides);
$headers = array_values($headers);
$another = array_values($another);

如果数组长度不同,您将遇到问题,因此您可能会检查:

if(isset($headers[$key])) { echo $headers[$key]; }

另一种方法可能是将它们映射到一个多维数组中,该数组在子数组中分别对应。 $values的整数索引与array_map中的数组顺序匹配:

foreach(array_map(null, $slides, $headers, $another) as $values) {
    echo $values[0];
    echo $values[1];
    echo $values[2];
}

或者将数组值分配给变量:

foreach(array_map(null, $slides, $headers, $another) as $values) {
    list($s, $h, $a) = $values;
    echo $s;
    echo $h;
    echo $a;
}