recursion - PHP convert Array to String (Folder & recursive) -
i stuck,....
i have array this:
$myarray['red'][0] = "valuered0"; $myarray['red'][1] = "valuered1"; $myarray['blue'][0] = "valueblue0"; $myarray['blue'][1] = "valueblue1"; $myarray['green'][0] = "valuegreen0"; $myarray['green'][1] = "valuegreen1"; $myarray['green'][top][0] = "valuegreentop0"; $myarray['green'][top][1] = "valuegreentop1"; $myarray['green'][bottom][0] = "valuegreenbottom0"; $myarray['green'][bottom][1] = "valuegreenbottom1"; as output need:
array( 'red/valuered0', 'red/valuered1', 'blue/valueblue0', 'blue/valueblue1', 'green/valuegreen0', 'green/valuegreen1', 'green/top/valuegreentop0', 'green/top/valuegreentop1', 'green/bottom/valuegreenbottom0', 'green/bottom/valuegreenbuttom1' ) so means: if key string, has folder. if key integer value has ne new value.
it's important recursive interprate different sized arrays.
anybody can me this, can't solve recursive thing.... ?
here example of how done
<?php $myarray['red'][0] = "valuered0"; $myarray['red'][1] = "valuered1"; $myarray['blue'][0] = "valueblue0"; $myarray['blue'][1] = "valueblue1"; $myarray['green'][0] = "valuegreen0"; $myarray['green'][1] = "valuegreen1"; $myarray['green']['top'][0] = "valuegreentop0"; $myarray['green']['top'][1] = "valuegreentop1"; $myarray['green']['bottom'][0] = "valuegreenbottom0"; $myarray['green']['bottom'][1] = "valuegreenbottom1"; print_r(flatten($myarray)); function flatten($data,$keys=array()){ $out=array(); foreach($data $key=>$val){ if(!is_array($val)){ $out[] = implode("/",$keys)."/".$val; }else{ $out = array_merge($out,flatten($val,array_merge($keys,array($key)))); } } return $out; } output:
array ( [0] => red/valuered0 [1] => red/valuered1 [2] => blue/valueblue0 [3] => blue/valueblue1 [4] => green/valuegreen0 [5] => green/valuegreen1 [6] => green/top/valuegreentop0 [7] => green/top/valuegreentop1 [8] => green/bottom/valuegreenbottom0 [9] => green/bottom/valuegreenbottom1 )
Comments
Post a Comment