php递归实现无限分类的方法


  本文标签:php,递归,无限分类

本文实例讲述了php递归实现无限分类的方法 。分享给大家供大家参考 。具体如下:

<?php
$rows = array(
  array(
    id => 1,
    name => dev,
    parentid => 0
  ),
  array(
    id => 2,
    name => php,
    parentid => 1
  ),
  array(
    id => 3,
    name => smarty,
    parentid => 2
  ),
  array(
    id => 4,
    name => life,
    parentid => 0
  ),
  array(
    id => 5,
    name => pdo,
    parentid => 2
  ),
  array(
    id => 6,
    name => pdo-mysql,
    parentid => 5
  ),
  array(
    id => 7,
    name => java,
    parentid => 1
  )
);
// 72648
// 84072
function findChild(&$arr,$id){
  $childs=array();
   foreach ($arr as $k => $v){
     if($v[parentid]== $id){
       $childs[]=$v;
     }
  }
  return $childs;
}
function build_tree($root_id){
  global $rows;
  $childs=findChild($rows,$root_id);
  if(empty($childs)){
    return null;
  }
  foreach ($childs as $k => $v){
    $rescurTree=build_tree($v[id]);
    if( null !=  $rescurTree){ 
    $childs[$k][childs]=$rescurTree;
    }
  }
  return $childs;
}
$tree=build_tree(0);
echo memory_get_usage();
print_r($tree);
?>

希望本文所述对大家的php程序设计有所帮助 。