zoukankan      html  css  js  c++  java
  • 无限极分类

    /**
    * 递归操作数组创建树状等级数组(可用于递归栏目操作)
    * @param $data 操作的数组
    * @param string $fieldPri 唯一键名,如果是表则是表的主键
    * @param string $fieldPid 父ID键名
    * @param int $pid 一级PID的值
    * @param string $sid 子ID用于获得指定指ID的所有父ID栏目
    * @param int $type 操作方式1=>返回多维数组,2=>返回一维数组,3=>得到指定子ID(参数$sid)的所有父栏目
    * @param string $html 栏目名称前缀,用于在视图中显示层次感的栏目列表
    * @param int $level 不需要传参数(执行时调用)
    * @return array
    */

    function channel($data, $fieldPri = 'cid', $fieldPid = 'pid', $pid = 0, $sid = null, $type = 2, $html = " ", $level = 1)
    {
    if (!$data) {
    return array();
    }
    switch ($type) {
    case 1:
    $arr = array();
    foreach ($data as $v) {
    if ($v[$fieldPid] == $pid) {
    $arr[$v[$fieldPri]] = $v;
    $arr[$v[$fieldPri]]['html'] = str_repeat($html, $level - 1);
    $arr[$v[$fieldPri]]["Data"] = channel($data, $fieldPri, $fieldPid, $v[$fieldPri], $sid, $type, $html, $level + 1);
    }
    }
    return $arr;
    case 2:
    $arr = array();
    $id = 0;
    foreach ($data as $v) {
    if ($v[$fieldPid] == $pid) {
    $arr[$id] = $v;
    $arr[$id]['level'] = $level;
    $arr[$id]['html'] = str_repeat($html, $level - 1);
    $sArr =channel($data, $fieldPri, $fieldPid, $v[$fieldPri], $sid, $type, $html, $level + 1);
    $arr = array_merge($arr, $sArr);
    $id = count($arr);
    }
    }
    return $arr;
    case 3:
    static $arr = array();
    foreach ($data as $v) {
    if ($v[$fieldPri] == $sid) {
    $arr[] = $v;
    $sArr = channel($data, $fieldPri, $fieldPid, $pid, $v[$fieldPid], $type, $html, $level + 1);
    $arr = array_merge($arr, $sArr);
    }
    }
    return $arr;
    }
    }

    调用方式:

    $data['cate']=channel($data,'cid','pid',0,0,2,'    ');

  • 相关阅读:
    文件管理
    权限管理
    用户和用户组
    BZOJ2957: 楼房重建(线段树&LIS)
    BZOJ2938: [Poi2000]病毒(AC自动机)
    BZOJ2935: [Poi1999]原始生物(欧拉回路)
    BZOJ4033: [HAOI2015]树上染色(树形DP)
    LightOJ
    LightOJ
    BZOJ4917: [Lydsy1706月赛]Hash Killer IV(模拟)
  • 原文地址:https://www.cnblogs.com/hgj123/p/3899577.html
Copyright © 2011-2022 走看看