首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不重新迭代父循环的情况下同时迭代两个数组?

如何在不重新迭代父循环的情况下同时迭代两个数组?
EN

Stack Overflow用户
提问于 2013-03-19 05:35:22
回答 3查看 24.4K关注 0票数 11

如何同时迭代两个大小相等的数组?

例如,第一个数组$a = array( 1,2,3,4,5);第二个数组$b = array(1,2,3,4,5);

我希望通过迭代这两种方法得到的结果是使循环过程通过相同的值来产生如下结果

代码语言:javascript
复制
  1-1
  2-2
  3-3
  4-4
  5-5

我试着在下面这样做,但它不起作用,它一直在重复第一个循环

代码语言:javascript
复制
foreach($a as $content) {
    foreach($b as $contentb){
        echo $a."-".$b."<br />"; 
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-19 05:37:18

使用普通的for循环而不是foreach,这样您就可以得到一个显式的循环计数器:

代码语言:javascript
复制
for($i=0; $i<count($content)-1; $i++) {
  echo $content[$i].'-'.$contentb[$i];
}

如果您希望使用基于字符串的索引数组,并且知道数组之间的字符串索引相等,则可以坚持使用foreach结构

代码语言:javascript
复制
foreach($content as $key=>$item) {
  echo $item.'-'.$contentb[$key];
}
票数 18
EN

Stack Overflow用户

发布于 2013-03-19 05:38:27

不是最高效的,但演示了SPL的multipleIterator。

代码语言:javascript
复制
$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($a));
$mi->attachIterator(new ArrayIterator($b));

$newArray = array();
foreach ( $mi as $value ) {
    list($value1, $value2) = $value;
    echo $value1 , '-' , $value2 , PHP_EOL;
}
票数 20
EN

Stack Overflow用户

发布于 2013-03-19 05:45:23

如果它们的大小相同,只需执行以下操作:

代码语言:javascript
复制
foreach($a as $key => $content){
   $contentb = $b[$key];
   echo($content."-".$contentb."<br />");
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15487386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档