Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Prodentim Probiotics Specially Designed For The Health Of Your Teeth And Gums

Instant Grammar Checker - Correct all grammar errors and enhance your writing

Teach Your Child To Read

Powerful WordPress hosting for WordPress professionals

Disclosure: My content contains affiliate links.

31,104 questions

40,777 answers

573 users

How to write a recursive function that traverse and print the values of a multi-dimensional array in PHP

2 Answers

0 votes
function recursive_print_multi_d_array($arr, $in="array")
{ 
   while (list($key, $value) = each($arr))
   { 
         if (is_array($value))
         { 
            recursive_print_multi_d_array($value, $in."[$key]"); 
         } 
         else 
         { 
            for ($i = 0; $i < count($value); $i++)
                 echo $in."[$key]=".$value."<br />"; 
         } 
   } 
} 

$arr2d = array(array(1, 8, 5),
               array(6, 7, 1),
               array(8, 7, 6),);

recursive_print_multi_d_array($arr2d); 

/*

run:

array[0][0]=1
array[0][1]=8
array[0][2]=5
array[1][0]=6
array[1][1]=7
array[1][2]=1
array[2][0]=8
array[2][1]=7
array[2][2]=6

*/

 





answered Oct 21, 2016 by avibootz
edited Oct 21, 2016 by avibootz
0 votes
function recursive_print_multi_d_array($arr, $in="array")
{ 
   while (list($key, $value) = each($arr))
   { 
         if (is_array($value))
         { 
            recursive_print_multi_d_array($value, $in."[$key]"); 
         } 
         else 
         { 
            for ($i = 0; $i < count($value); $i++)
                 echo $in."[$key]=".$value."<br />"; 
         } 
   } 
} 

$arr2d = array(array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)),
               array(array(11, 22, 33), array(44, 55, 66), array(77, 88, 99)),
               array(array(112, 222, 333), array(444, 555, 666), array(777, 888, 999)));

recursive_print_multi_d_array($arr2d); 

/*

run:

array[0][0][0]=1
array[0][0][1]=2
array[0][0][2]=3
array[0][1][0]=4
array[0][1][1]=5
array[0][1][2]=6
array[0][2][0]=7
array[0][2][1]=8
array[0][2][2]=9
array[1][0][0]=11
array[1][0][1]=22
array[1][0][2]=33
array[1][1][0]=44
array[1][1][1]=55
array[1][1][2]=66
array[1][2][0]=77
array[1][2][1]=88
array[1][2][2]=99
array[2][0][0]=112
array[2][0][1]=222
array[2][0][2]=333
array[2][1][0]=444
array[2][1][1]=555
array[2][1][2]=666
array[2][2][0]=777
array[2][2][1]=888
array[2][2][2]=999

*/

 





answered Oct 21, 2016 by avibootz
...