使用foreach循环同时循环通过两个多维数组

时间:2014-01-14 07:56:50

标签: php foreach

我试图用foreach循环遍历两个多维数组

[array1] => Array ( 
[0] => Array ( 1,2,3 ) 
[1] => Array ( 4,5,6 ) 
[2] => Array ( 7,8,9 )
  )
[array2] => Array ( 
[0] => Array ( 1,2,3 ) 
[1] => Array ( 4,5,6 ) 
[2] => Array ( 7,8,9 ) ) 
  )

两个都有相同的键,

我想同时访问两个阵列的第一个数组, 我想做这样的事情

foreach($array1 as $key1=>$value1 && $array2 as $key2=>$value2)
    echo $value1[1]."  ".$value2[2]

它不正确,但这就是我想做的事情!

3 个答案:

答案 0 :(得分:3)

如果两个维度中两个数组之间的键相同:

foreach (array_keys($array1) as $key1) {
    foreach (array_keys($array1[$key1]) as $key2) {
        echo $array1[$key1][$key2].' '.$array2[$key1][$key2];
    }
}

最糟糕的情况是,一个维度或另一个维度中的某些键在一个或两个数组中都缺失,您必须在读取之前合并它们(并确保每个循环和数组中都存在键值)。


UPDATE :对二维数组结构使用相同的解决方案两次。

答案 1 :(得分:1)

您可以使用此代码,因为您有相同的密钥

foreach($array1 as $key=>$value) {
    for($i=0; $i < count($value); $i++) {
        echo $value[$i]."  ".$array2[$key][$i];
    }
}

感谢Maks3w的评论。

答案 2 :(得分:1)

我不确定你是否可以这样做,我会改用for循环:

for(i=0; i < count($array1); i++)
{
   for(j=0; j < count($array1[i]); j++)
   {
       echo $array1[i][j];
       echo $array2[i][j];
   }
}