繁体   English   中英

使用foreach循环同时遍历两个多维数组

[英]loop through two muti-dimensional array at same time using foreach loop

我试图通过一个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]

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

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

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

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


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

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

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

感谢Maks3w的评论。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM