PHP递归重新排序无限级分类数组
public static function Menus($id,$spac=0){
/* $data = array( 1 => array('id' => 1,'name' => 'name1','pid' => 0),
2 => array('id' => 2,'name' => 'name2','pid' => 0),
3 => array('id' => 3,'name' => 'name3','pid' => 1),
4 => array('id' => 4,'name' => 'name4','pid' => 0),
5 => array('id' => 5,'name' => 'name5','pid' => 3),
6 => array('id' => 6,'name' => 'name6','pid' => 3),
);*/
$menu = Menu::model()->findAll();
$arr = array();
// $arr = array_push($arr,$arr);
foreach ($menu as $k => $v) {
if ($v['parent_id'] == $id) {
// $arr[] = $v;
//$v['id'] =str_repeat(' ',$spac) .$v['name'];
// $str .= "<option value='" . $v['id'] . "'>" . str_repeat(" ",$spac) . "|--" . $v['name'] . "</option>";
// self::Menus($v['id'],$spac);
$arr[] = $v;
$arr = array_merge($arr,self::Menus($v['menu_id'])); //递归合并数组
}
}
// print_r($arrs);
return $arr;
}
PHP递归重新排序无限级分类数组的更多相关文章
- thinkphp框架中使用递归实现无限级分类
无限级分类在我们开发中显得举足轻重,会经常被人问到,而一般会用递归的方法来实现,但是递归又会难倒一批人.今天博主分享的这个稍微有点基础的phper都能学会,希望大家能喜欢. 一.先建立对应的数据库和表 ...
- PHP不使用递归的无限级分类
不用递归实现无限级分类,简单测试了下性能比递归稍好一点点点,但写得太复杂了,还是递归简单方便点 代码: <?php $list = array( array('id'=>1, 'pid'= ...
- (实用篇)PHP递归实现无限级分类
在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信 ...
- PHP迭代与递归实现无限级分类
无限级分类是开发中常见的情况,因此本文对常见的无限极分类算法进行总结归纳. 1.循环迭代实现 $arr = [ 1=>['id'=>1,'name'=>'父1','father'=& ...
- PHP递归实现无限级分类
在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信 ...
- php递归实现无限级分类树
作者: PHP中文网|标签:PHP 递归 无限级树|2017-5-18 18:09 无限级树状图可以说是无限级栏目的一个显著特征,我们接下来就来看看两种不同的写法. 一.数据库设计 1 2 3 ...
- PHP 递归读取无限级分类
/** * [获取第一级分类] * 20170829 * * @return array */ public function getCateList(){ $this->catelog = [ ...
- php用压栈的方式,循环遍历无限级别的数组(非递归方法)
php用压栈的方式,循环遍历无限级别的数组(非递归方法) 好久不写非递归遍历无限级分类...瞎猫碰到死老鼠,发刚才写的1段代码,压栈的方式遍历php无限分类的数组... php压栈的方式遍历无限级别数 ...
- Think PHP递归重新排序无限极子分类数组(递归无限极分类)
Think PHP递归重新排序无限极子分类数组 // 递归重新排序无限极子分类数组 function recursive($array,$pid=0,$level=0){ $arr = array() ...
随机推荐
- 对“Git”认知。
并没有接触过这个名词,相信在今后的学习和生活中会接触.不过在网上大致看了一下,应该是一种类似于后台控制的系统吧,希望以后自己会了解这个陌生的东西(软件?系统?程序?).
- C++ 四种类型转换
在写代码中经常会有很多的隐式类型转换或显式类型转换. 对于隐式的类型转换主要是放生在赋值的时候,讲变量赋值给不同类型的变量的时候就会发生类型转换,如果是宽化转换(即从占字节少的类型向占字节多的类型转换 ...
- MySQL数据库5 - 插入数据,修改数据,删除数据
一.插入数据 1. 所有列都插入值 INSERT [INTO] TABLE_NAME VALUES(V1,V2....Vn); 特点:列值同数,列值同序 eg: insert into users v ...
- josn
<?php$arr=array('name'=>'张三','age'=>19,'sex'=>'男','status'=>'未婚','className'=>'FG ...
- u-boot学习笔记(一):基础概念
1.U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.U-Boot的作用是系统引导.U-Boot从FADSROM.8xxROM.PPCBOOT逐步发展演化 ...
- lumia520刷机注意事项
1.下载后的固件名称中设备名前的随机字符都要去掉 2.安装完nokia care suit后最好在driver目录下重新双击安装usb driver
- centos6虚拟机复制后修改网卡
方法1: 使用vmware创建centos6.4虚拟机, 创建完成后复制该虚拟机, 打开复制的虚拟机发现网卡名字是eth1,而网卡配置文件为eth0,mac地址变了 这时修改网卡配置文件, 删除uui ...
- DotNetBar TabControl的使用
这个和系统的TabPage不同,一个TabPage分为了DevComponents.DotNetBar.TabItem,DevComponents.DotNetBar.TabControlPanel两 ...
- dom扩展
第十一章 DOM扩展 一.选择符API 1.querySelector()方法 接收一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null. 2. ...
- ajax的status为201依然触发jquery的error事件的问题
昨天在调试一个ajax的时候发现,即使status是201,仍然会触发jquery的error事件.statusText是"parseerror". 通过在stackoverflo ...