您好我在foreach
循环中一直处于亏损状态。我要做的是在foreach
循环中有多个数组。
我在互联网上可以找到的是如何从数组中获取单个值。我设法让两个人合作:
foreach (array_combine($slides, $headers) as $slide => $header)
但这只限于两个阵列。我只想列出两个以上数组的列表。
答案 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;
}