您好,欢迎访问一九零五行业门户网

php实战之使用递归读取商品无限分类

最近在做一个商城项目时候,需要取出分类表中的数据,分类表中通过一个pid(父类id)关联各个分类,为了整理读出的二维数据成一个树状的格式,自己在项目中封装了下面一个方法。
/** * [treecats description] * @param [array] $arr [原始未排序的数组] * @param [array] $limit [第一个元素代表开始递归的parent_id,默认为0,第二个元素代表剔除元素及子元素cat_id,如果没有传值,默认为0] * @param integer $level [函数调用的深度] * @return [array] [排好序的数组] */publicfunctiontreecats($arr,$limit,$level=0){$rec = array(); //先消除cat_id对应的值foreach ($arras$key=>$value){ if($value['cat_id']!=$limit['cd']){ $arr_new [$key]=$value; } } //对于新数组进行遍历foreach ($arr_newas$key => $value) { if($value['parent_id']==$limit[pd] &&$value['parent_id']!=$limit[cd]){ $value['level']=$level; $rec []= $value; //生成用于下一层循环的数组$next_limit = array(pd=>$value['cat_id'],cd=>$limit[cd]); $rec = array_merge($rec,$this->treecats($arr,$next_limit,$level+1)); } } return$rec; }
这里设置$limit 的应用场景是如果修改这个分类的父分类为它原来的子分类的话,这个分类枝就发生丢失了,所以这时候就应该将可选类里面剔除它的子类。
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了php实战之使用递归读取商品无限分类,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息