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

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

/**

* 递归操作数组创建树状等级数组(可用于递归栏目操作)
* @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,'    ');

 

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

你可能感兴趣的文章
使用redis进行基于shiro的session集群共享
查看>>
近期项目
查看>>
计算机内存模型 粗浅理解
查看>>
跨林拓扑中部署 Exchange 2013 GAL同步之一安装篇
查看>>
JAVA 注解-学习篇(2)
查看>>
OSPF路由网络建立过程
查看>>
php-fpm进程设置优化
查看>>
安装android studio for Ubuntu12.04.4-------(1)
查看>>
VCS仿真生成vpd文件(verilog)
查看>>
由浅到深学习JDBC三
查看>>
JAVA 实现AES加密的两种方法
查看>>
博为峰Java技术文章 ——JavaSE Swing JTabbedPane选项卡面板I
查看>>
在老师面前要谦虚
查看>>
Vue.js学习系列(十)---给页面增加动态数据
查看>>
(搜集)centos 搭建postfix+extmail并用nagios监控
查看>>
spring集成redis实现缓存功能
查看>>
是现在的孩子太矫情了还是家长太矫情了
查看>>
分享提升网站内容的五大要点
查看>>
vmware下的linux的host only上网总结
查看>>
我的友情链接
查看>>