如何同时迭代两个大小相等的数组?
例如,第一个数组$a = array( 1,2,3,4,5);第二个数组$b = array(1,2,3,4,5);
我希望通过迭代这两种方法得到的结果是使循环过程通过相同的值来产生如下结果
1-1
2-2
3-3
4-4
5-5我试着在下面这样做,但它不起作用,它一直在重复第一个循环
foreach($a as $content) {
foreach($b as $contentb){
echo $a."-".$b."<br />";
}
}发布于 2013-03-19 05:37:18
使用普通的for循环而不是foreach,这样您就可以得到一个显式的循环计数器:
for($i=0; $i<count($content)-1; $i++) {
echo $content[$i].'-'.$contentb[$i];
}如果您希望使用基于字符串的索引数组,并且知道数组之间的字符串索引相等,则可以坚持使用foreach结构
foreach($content as $key=>$item) {
echo $item.'-'.$contentb[$key];
}发布于 2013-03-19 05:38:27
不是最高效的,但演示了SPL的multipleIterator。
$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;
}发布于 2013-03-19 05:45:23
如果它们的大小相同,只需执行以下操作:
foreach($a as $key => $content){
$contentb = $b[$key];
echo($content."-".$contentb."<br />");
}https://stackoverflow.com/questions/15487386
复制相似问题