为什么叫微型分类树呢? 因为这个只能用于超迷你型的应用,对复杂结构的分类不适用! 今天群里的一个PHPer问我怎么把一段二维的分类数组分解成树状结构的数组,于是写下了这段代码! $arr = array( array('id'=>1, 'fid'=>0, 'name'=>'家电', 'sid'=>0), array('id'=>2, 'fid'=>0, 'name'=>'饮食', 'sid'=>1), array('id'=>3, 'fid'=>1, 'name'=>'冰箱', 'sid'=>1), array('id'=>4, 'fid'=>1, 'name'=>'洗衣机', 'sid'=>0), array('id'=>5, 'fid'=>3, 'name'=>'熊猫冰箱', 'sid'=>0), array('id'=>6, 'fid'=>3, 'name'=>'波导冰箱', 'sid'=>5), array('id'=>7, 'fid'=>4, 'name'=>'爱国者洗衣机', 'sid'=>2), array('id'=>8, 'fid'=>2, 'name'=>'尼古丁', 'sid'=>0), array('id'=>9, 'fid'=>2, 'name'=>'可卡因', 'sid'=>4), ); $aa = new arr($arr); print_r($aa->get(0)); class arr { private $tmp,$arr; function __construct($arr) { $this->arr = $arr; foreach ($arr as $val) { $this->tmp[$val['fid']][] = $val; } } function get($fid) { foreach ($this->tmp[$fid] as $val) { $rs[$val['id']]['self'] = $val; if($this->tmp[$val['id']]) { $rs[$val['id']]['child'] = $this->get($val['id']); } } return $rs; } }