【问题标题】:Multiple array echo with foreach statement in php [duplicate]php中带有foreach语句的多个数组回显[重复]
【发布时间】:2011-12-27 23:18:12
【问题描述】:

可能重复:
Multiple index variables in PHP foreach loop

我们可以使用单个 foreach 语句回显多个数组吗?

尝试了以下方式但没有成功:

foreach($cars, $ages as $value1, $value2)
{
    echo $value1.$value2;
}

【问题讨论】:

  • 能够做到这一点很好,但我认为您将需要使用索引。数组总是相同的长度吗?
  • @Yzmir 数组的长度不同。
  • 如果它们的长度不同,那么无论如何这样做都没有意义。
  • 你必须非常小心地尝试在这里遍历两个数组。例如,当您尝试按汽车品牌对 $cars 数组进行排序时会发生什么?在这种情况下, $ages 数组变得毫无用处。我认为最好的方法是让一个数组填充某种 CarAge 对象并在该数组上进行 foreach。

标签: php arrays


【解决方案1】:

假设两个数组具有相同数量的元素,这应该可以工作

foreach(array_combine($cars, $ages) as $car => $age){
    echo $car.$age;
}

如果不能保证数组的长度相同,那么你可以这样做

$len = max(count($ages), count($cars));
for($i=0; $i<$len; $i++){
    $car = isset($cars[$i]) ? $cars[$i] : '';
    $age = isset($ages[$i]) ? $ages[$i] : '';
    echo $car.$age;
}

如果你只是想加入两个数组,你可以这样做

foreach(array_merge($cars, $ages) as $key => $value){
    echo $key . $value;
}

【讨论】:

  • 哇,你打败了我。你的代码也和我的一模一样:D -- +1
  • 使用array_combine() 将不起作用,因为根据提问者的说法,数组的大小不同。当数组大小不同时,array_combine() 将返回 FALSE。也许您可以填充较小的数组?
  • 我喜欢你的编辑处理不同长度的数组比我的答案更好。 +1
猜你喜欢
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-07
  • 2020-11-12
  • 2019-02-12
相关资源
最近更新 更多