php递归方法实现无限分类实例
递归实现无限分类就是自动调用自己了,下面一个二级分类的例子,如果有你需要就拿去吧,没什么原理下算法的纠结了。
数组:
<?php $items = array( array( 'id' => 1, 'pid' => 0, 'name' => '一级11' ) , array( 'id' => 11, 'pid' => 0, 'name' => '一级12' ) , array( 'id' => 2, 'pid' => 1, 'name' => '二级21' ) , array( 'id' => 10, 'pid' => 11, 'name' => '二级22' ) , array( 'id' => 3, 'pid' => 1, 'name' => '二级23' ) , array( 'id' => 12, 'pid' => 11, 'name' => '二级24' ) , array( 'id' => 13, 'pid' => 12, 'name' => '三级31' ) , array( 'id' => 9, 'pid' => 1, 'name' => '二级25' ) , ); ?>
函数:
<?php function formatTree($array, $pid = 0) { $arr = array(); $tem = array(); foreach ($array as $v) { if ($v['pid'] == $pid) { $tem = formatTree($array, $v['id']); //判断是否存在子数组 $tem && $v['son'] = $tem; $arr[] = $v; } } return $arr; } ?>
其中,数组一定要包含id和pid用以指定数组值之间的层级关系
教程地址:http://www.phprm.com/code/58058.html
欢迎转载!但请带上文章地址^^