How to add a parent ID to every child in a array? php How to add a parent ID to every child in a array? php codeigniter codeigniter

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 push p_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);