Bypassing a multidimensional array recursively without using foreach

I have such an array and code using a foreach loop.

$arr = array( array ( array( 'CAR_TIR', 'Tires', 100 ), array( 'CAR_OIL', 'Oil', 10 ), array( 'CAR_SPK', 'Spark Plugs', 4 ) ), array ( array( 'VAN_TIR', 'Tires', 120 ), array( 'VAN_OIL', 'Oil', 12 ), array( 'VAN_SPK', 'Spark Plugs', 5 ) ), array ( array( 'TRK_TIR', 'Tires', 150 ), array( 'TRK_OIL', 'Oil', 15 ), array( 'TRK_SPK', 'Spark Plugs', 6 ) ) ); function recarray($array) { foreach($array as $key=>$value) { if(is_array($value)) { RecArray($value); } else { echo "key = $key value = $value"; } } } recarray($arr); 

I have to go through the array using recursion and without using foreach.

+8
php multidimensional-array recursion
source share
3 answers

Simple depth search:

 function DFS($array) { for ($i = 0; $i < count($array); $i ++) { if (is_array($array[$i])) { DFS($array[$i]); } else { echo "key: ".$i.", value: ".$array[$i]."<br />"; } } } 
+7
source share

What about array_walk_recursive () ? he can apply a function to each element of the array:

 function test_print($value, $key) { echo "key = $key value = $value"; } array_walk_recursive($arr, 'test_print'); 

not verified

+2
source share

I would use a while loop - like

 while($i < count($array)) {} 
0
source share

All Articles