博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php递归无限极分类
阅读量:6715 次
发布时间:2019-06-25

本文共 1711 字,大约阅读时间需要 5 分钟。

递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种:

第一种:返回有排序的数组:

array( 'id' => 1, 'pid' => 0, 'user_name' => 'one', ), 2 => array( 'id' => 2, 'pid' => 1, 'user_name' => 'two', ), 3 => array( 'id' => 3, 'pid' => 1, 'user_name' => 'two', ), 4 => array( 'id' => 4, 'pid' => 2, 'user_name' => 'three', ), 5 => array( 'id' => 5, 'pid' => 2, 'user_name' => 'three', ), 6 => array( 'id' => 6, 'pid' => 5, 'user_name' => 'four', ),);function genCate( $data, $pid = 0, $level = 0 ) { static $result = array(); $result = ($level == 0) ? array() : $result; $prefix = ($level == 0) ? '' : str_repeat( '-', $level ); foreach ( $data as $key => $row ) { if ( $row['pid'] == $pid ) { $row['user_name'] = $prefix . $row['user_name']; $result[] = $row['user_name']; genCate( $data, $row['id'], $level + 1 ); } } return $result;}echo '
';$result = genCate( $data );print_r( $result );exit;?>

另外一种:返回html字符串形式:

function getTreeHtml( $data, $pId ) {    $html = '';    foreach ( $data as $k => $v ) {        if ( $v['pid'] == $pId ) {             $html .= "
  • " . $v['user_name']; $html .= getTree( $data, $v['id'] ); $html = $html . "
  • "; } } return $html ? '
      ' . $html . '
    ' : $html;}

    第三种:返回多维数组形式:

    function getTreeArray( $data, $pId = 0 ) {    $tree = array();    foreach ( $data as $key => $value ) {        if ( $value['pid'] == $pId ) {            $value['childrens'] = getTreeArray( $data, $value['id'] );            $tree[] = $value;        }    }    return $tree;}

    转载地址:http://hnkmo.baihongyu.com/

    你可能感兴趣的文章
    Access中一句查询代码实现Excel数据导入导出
    查看>>
    2015第49周二
    查看>>
    Sphinx/Coreseek 4.1的安装流程
    查看>>
    邮件服务器Postfix的管理 重启php-fpm
    查看>>
    Android Studio 项目代码全部消失--出现原因及解决方法
    查看>>
    SQL Server---存储过程
    查看>>
    MySQL Performance-Schema(二) 理论篇
    查看>>
    搭建SSH详细步骤及相关说明
    查看>>
    Android IOS WebRTC 音视频开发总结(五五)-- 音视频通讯中的抗丢包与带宽自适应原理...
    查看>>
    Libgdx: 将Texturepacker打包的PNG图片还原成一张一张的单个的
    查看>>
    再议Swift操作符重载
    查看>>
    pc机进入android的shell
    查看>>
    javascript Date format(js日期格式化)
    查看>>
    Loadrunner中参数化实战(6)-Random+Each occurrence
    查看>>
    tomcatserver解析(六)-- Acceptor
    查看>>
    asp.net判断访问者是否来自移动端
    查看>>
    Python 一些常用模块的安装
    查看>>
    严苛模式(StrictMode)
    查看>>
    牛客网-《剑指offer》-跳台阶
    查看>>
    unity, editorWindow update计时
    查看>>