Reputation: 15
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
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
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
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