How to add a parent ID to every child in a array? php
Your problem is solved, check it. The function is recursively push
p_id
and another point is if the array contain numeric index then it will skip to pushp_id
.
Function is:
function generateArray($in, $parent = 0){ foreach ($in as $key => $value) { if(is_numeric($key)){ $in = $value; $out[$key] = generateArray($in, $parent); }else{ $out[$key]=$value; if($key=="id"){ $out['p_id']=$parent; $parent=$value; }elseif($key=="children"){ $in = $value; $out[$key] = generateArray($in, $parent); } } } return $out;}
Working example:
$my_array =array( 'id'=> 4, 'children'=> Array( '0'=> Array( 'id'=> 18, 'children'=> Array( '0'=> Array( 'id'=> 21, ), '1'=> Array( 'id'=> 22, ), ), ), '1'=> Array( 'id'=> 19, ), '2'=> Array( 'id'=> 20, 'children'=> Array( '0'=> Array( 'id'=> 26, ), ), ), ));$newarray = generateArray($my_array);print_r($newarray);