首页 > 代码库 > 将树形结构的数组按照顺序遍历为二维数组
将树形结构的数组按照顺序遍历为二维数组
/** * 将树形结构的数组按照顺序遍历为二维数组 * renxing,2015年8月7日 11:06:47 */ function arr_child ($array) { static $res; if (!is_array($array)) { return false; } foreach ($array as $k=>$v) { if (is_array($v) && isset($v[‘child‘])) { $child = $v[‘child‘]; //将这个数组的子节点赋给变量 $child unset($v[‘child‘]); //释放这个数组的所有子节点 $res[] = $v; //将释放后的数组填充到新数组 $res arr_child ($child); //递归处理释放前的包含子节点的数组 } else { $res[] = $v; } } return $res; }
【原数组结构】
【转换后的数组】
《附加:上面的树形结构数组怎么来的?》
/** * cateList * renxing,2015年8月6日 15:55:59 * 十分牛逼的算法By:http://www.oschina.net/code/snippet_173183_11767 */ public function cateListLg($list){ //先对数组基本的转换 $items = array(); foreach ($list as $k=>$v){ $items[$v[‘cate_id‘]] = $v; } //qq($items); //将所有分类设置为无限级分类的形式 $tree = array(); //格式化好的树 foreach ($items as $item){ if (isset($items[$item[‘parent_id‘]])){ $items[$item[‘parent_id‘]][‘child‘][] = &$items[$item[‘cate_id‘]]; }else{ $tree[] = &$items[$item[‘cate_id‘]]; } } //qq($tree); return $tree; }
【代码截图】
【初始数据】
【select的结构】
【转换树形后的结构】----即:本文最上面的结构
将树形结构的数组按照顺序遍历为二维数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。