曾经有一个迭代问题,困扰了我三天三夜,吃不着饭,睡不着觉,就是因为我没想到是用迭代的方法,如果总算解决问题了,说什么也要把方法分享出来。
现有一个商品分类表,要将他们进行分类综合,并且要做到这样的效果
父类下是子类,而且要有缩进。
如果这只是有二级分类的话会很好做,两个foreach就可以了,可现在的情况是我们不知道会有多少级分类,所以说不能用单纯的foreach来循环。这就是个很纠结的问题了,这样怎么办呢,如果有四级的话难道用四个foreach吗?如果5级呢,我就一直在纠结这个问题。
$array = array('');
function find_children($root_id){
/*执行方法,读取$root_id下面的分类,只读取一层即可*/
$children_data = $this->getchild($root_id);
$child = $children_data;
return $child;
}
function build_tree($root_id){
/*首先是获取传值id的分类*/
$childs = find_children($root_id);
/*如果所传值的目录下有分类的话,就循环读取。*/
if(is_array($child)){
/*循环读取*/
foreach($child as $k=>$val){
$child = find_children($val['id']);
$childs[$k][childs] = $child;
}
}
return $child;
}