sameer
sameer

Reputation: 15

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

i am trying to loop through two multi-dimensional array with a foreach loop

[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 ) ) 
  )

both has same keys,

i want to access 1st array of both arrays at same time, i want to do something like this

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

its not correct, but that's what i want to do !!

Upvotes: 1

Views: 627

Answers (3)

miltos
miltos

Reputation: 1019

You can use this code, because you have same keys

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

Thanks Maks3w for your comment.

Upvotes: 1

Calimero
Calimero

Reputation: 4288

If the keys are identical between the two arrays in both dimensions :

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

Worst case scenario, some keys in one dimension or the other are missing in one or both arrays and you have to merge them prior to reading (and ensure the existence of the key's value in each loop & array).


UPDATE: used the same solution twice for two-dimensional array structure.

Upvotes: 3

Stefan
Stefan

Reputation: 528

im not sure if you can do this, i would use a for loop instead:

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

Upvotes: 1

Related Questions