三级或者无限级分类时数组拼装
来源:互联网 发布:甲基异噻唑啉酮 知乎 编辑:程序博客网 时间:2024/05/22 13:39
前两种自己写的 非常low
$menuArr = M('system_module')->where('visible','1')->select();
//三级为空时,删除二级
foreach ($menuArr as $k=>$v){
if ($v['level'] == 2){
$unset = true;
foreach ($menuArr as $kk=>$vv){
if ($vv['parent_id'] == $v['mod_id']){//如果存在有人的父id为上一级id,则不删除
$unset = false;
}
}
if ($unset){
unset($menuArr[$k]);
}
}
}
//二级为空时删除定级
foreach ($menuArr as $k=>$v){
if ($v['level'] == 1){
$unset = true;
foreach ($menuArr as $kk=>$vv){
if ($vv['parent_id'] == $v['mod_id']){//如果存在有人的父id为上一级id,则不删除
$unset = false;
}
}
if ($unset){
unset($menuArr[$k]);
}
}
}
}
1.分三级查出,三次循环拼入 多此循环性能低
foreach ($menuArr as $k=>$v){
if ($v['level'] == 1){
$top[] = $v;
}elseif ($v['level'] == 2){
$menu[] = $v;
}elseif ($v['level'] == 3){
$module[] = $v;
}
}
foreach ($top as $k=>$v){
foreach ($menu as $k1=>$v1){
if ($v1['parent_id'] == $v['mod_id']){
foreach ($module as $k2=>$v2){
if ($v2['parent_id'] == $v1['mod_id']){
$menu[$k1]['model'][]=$v2;
}
}
$top[$k]['menu'][]=$menu[$k1];
}
}
}
2.分三级查出,每级查出时做拼接
foreach (getMenuArr() as $k=>$v){
if ($v['level'] == 1){
$top[] = $v;
}elseif ($v['level'] == 2){
foreach ($top as $kk=>$vv){
if ($vv['mod_id'] == $v['parent_id']){
$top[$kk]['menu'][] = $v;
}
}
}elseif ($v['level'] == 3){
foreach ($top as $key=>$value){
foreach ($value['menu'] as $kkk=>$vvv){
if ($vvv['mod_id'] == $v['parent_id']){
$top[$key]['menu'][$kkk]['model'][] =$v;
}
}
}
}
}
$this->assign('top',$top);
3.分三级查出,每级查出时其父ID做为映射ID,方便后续拼接
foreach ($cat_list as $val){
if($val['level'] == 2){
$arr[$val['parent_id']][] = $val;
}
if($val['level'] == 3){
$crr[$val['parent_id']][] = $val;
}
if($val['level'] == 1){
$tree[] = $val;
}
}
var_dump($arr);die();
foreach ($arr as $k=>$v){
foreach ($v as $kk=>$vv){
$arr[$k][$kk]['sub_menu'] = empty($crr[$vv['id']]) ? array() : $crr[$vv['id']];
}
}
foreach ($tree as $val){
$val['tmenu'] = empty($arr[$val['id']]) ? array() : $arr[$val['id']];
$result[$val['id']] = $val;
}
- 三级或者无限级分类时数组拼装
- 三级或者无限级分类时 不分级组装数组
- php三级联动+无限分类+树形菜单
- ASP无限分类变数组
- PHP 无限极分类数组
- 递归处理无限级分类为树形数组
- 无限级分类
- 无限级分类
- 无限级分类
- PHP无限级分类
- ASP无限级分类
- DropDownList 无限级分类
- DropDownList无限级分类
- 实用无限级分类
- DropDownList 无限级分类
- DropDownList 无限级分类
- 无限级分类
- 无限级分类原理
- QLabel与其Buddy
- IntelliJ-配置artifacts,解决no artifacts的warnings
- 调试方法
- react-navigation之TabNavigator使用
- MySQL中的锁
- 三级或者无限级分类时数组拼装
- TensorFlow GPU环境linux搭建指南
- 算法时间复杂度&空间复杂度
- 深入探寻seajs的模块化与加载方式
- Servlet监听器(Listener)
- Dll 文件导出方式,Debug/Release简要区别
- php示例代码
- ubuntu SecureCRT 安装破解
- 非递归快速幂算法