php recursive method to implement infinite classification instance code

  • 2021-01-19 22:02:48
  • OfStack

Array:


$items = array(
 array('id' => 1, 'pid' => 0, 'name' => '1 level 11' ),
 array('id' => 11, 'pid' => 0, 'name' => 'www.ofstack.com 1 level 12' ),
 array('id' => 2, 'pid' => 1, 'name' => '2 level 21' ),
 array('id' => 10, 'pid' => 11, 'name' => '2 level 22' ),
 array('id' => 3, 'pid' => 1, 'name' => '2 level 23' ),
 array('id' => 12, 'pid' => 11, 'name' => '2 level 24' ),
 array('id' => 13, 'pid' => 12, 'name' => '3 level 31' ),
 array('id' => 9, 'pid' => 1, 'name' => '2 level 25' ),
);

Function:


function formatTree($array, $pid = 0){
 $arr = array();
 $tem = array();
 foreach ($array as $v) {
  if ($v['pid'] == $pid) {
   $tem = formatTree($array, $v['id']);
                        // Determines whether a subarray exists 
   $tem && $v['son'] = $tem;
   $arr[] = $v;
  }
 }
 return $arr;
}


Related articles: