发布于 1970-01-01 08:00
  • 1 个回答
    • 不知道你说的是不是跟无限分类类似的情况。
      如果parent和child是放在同一个表(应该也是)
      如果只有两层的话,我通常是这么做的
      那么查询时按照pid排序

      ORDER BY `pid` ASC
      

      然后遍历数组

      $result = array();
      foreach($data as $v) {
          if($v['pid'] == 0) {
              $result[$v['id']] = $v;
              continue;
          }
          $result[$v['pid']]['chlid'][] = $v;
      }
      var_dump($result);
      

      如果是需要三层例如

      array(
          array(
              'id',
              'pid',
              'child' => array(
                  array(
                      'id',
                      'pid',
                      'child' => array(
                          ...
                      ),
                  ),
              ),
          ),
      )
      

      这样的话,我觉得这种方式的有点自找麻烦了。

      参考资料:http://www.cnblogs.com/yangmanyan/archive/2011/06/16/2082963.html


      抱歉更新一下,从数据库查询出来的结果,哪怕字段类型是整型,查询出来也是字符串。
      所以应该是$v['pid'] == 0或者$v['pid'] === '0'

      2022-12-01 17:26 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有