外围网站赌球:无限极分类不用递归生成多维数组(树)的方法

浏览:167 发布日期:2018/08/10 分类:技术分享
<足球外围网 id="eb7db7ce4f5ecb846"> <足球外围网 id="ea0cb5324242b850e"> 最近在项目中碰到的一个实际问题:后台商品分类用的是无限极方法



现在前台要根据分类遍历出三级导航

需要把查询出来的数据处理成多维数组,方便前台用多个foreach嵌套遍历。
  网上多方搜集资料、经过验证成功后,记录解决方案如下:
  1、从数据库查询出所有数据;
  2、对数据进行初步处理,使二维数组的“键”与三维数组的id相等,将数据存入新数组$tmp;/**
     * 获取树状结构数据
     */
    public function getTree()
    {
        // 取出所有的数据
        $where['isdelete'] = 2;
        $where['isshow'] = 1;
        $thisData = $this->field("id,name,parent_id,level")->where($where)->select();
        foreach($thisData as $k=>$v)
        {
            $tmpArr[$v['id']] = $thisData[$k];
        }
        return $this->generateTree($tmpArr);
    }
  3、调用generateTree() 方法把 $tmpArr数组转换成对应的多维数组/**
     * 极致追求效率,但是对数据结构要求很高
     * 必须二维数组的“键”与三维数组的id相等,并且无法指定起始节点
     */
    private function generateTree($data)
    {
        $tree = array();
        foreach($data as $val){
            if(isset($data[$val['parent_id']])){
                $data[$val['parent_id']]['children'][] = &$data[$val['id']];
            }else{
                $tree[] = &$data[$val['id']];
            }
        }
        return $tree;
    }
  4、将处理后的数据渲染到前台遍历。


本文来自网络整理
<足球外围网 id="ad196de4c105c1d8be">
<足球外围网 id="ad6b7d22ed07ed248d">
最佳答案
评论( 相关
后面还有条评论,点击查看>>
<足球外围网 id="e997c2acdc76d56ad">
免费白菜 免费彩金 彩金免费领 免费白菜网 免费彩金送 免费彩金网 免费给彩金 免费领彩金 免费送白菜