【问题标题】:PHP foreach multiple arraysPHP foreach 多个数组
【发布时间】:2018-02-22 18:32:39
【问题描述】:

您好,我对foreach 循环感到不知所措。我想做的是在foreach 循环中有多个数组。

我在 Internet 上只能找到如何从数组中获取单个值。我设法让两个人一起工作:

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

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

【问题讨论】:

  • 举一个你拥有的数组的例子,以及你希望相应的输出是什么。
  • 你放弃了吗?

标签: php arrays loops foreach


【解决方案1】:

由于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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 2018-10-01
    • 2015-08-13
    • 2019-02-09
    相关资源
    最近更新 更多