I need to turn each end-point in a multi-dimensional array (of any dimension) into a row containing the all the descendant nodes using PHP. In other words, I want to resolve each complete branch in the array. I am not sure how to state this more clearly, so maybe the best way is to give an example. If I start with an array like: $arr = array( 'A'=>array( 'a'=>array( 'i'=>1, 'j'=>2), 'b'=>3 ), 'B'=>array( 'a'=>array( 'm'=>4, 'n'=>5), 'b'=>6 ) ); There are 6 end points, namely the numbers 1 to 6, in the array and I would like to generate the 6 rows as: A,a,i,1 A,a,j,2 A,b,2 B,a,m,3 B,a,n,4 B,b,2 Each row contains full path of descendants to the end-point. As the array can have any number of dimensions, this suggested a recursive PHP function and I tried: function array2Rows($arr, $str='', $out='') ...