PHP无限级分类实现 递归/索引
2018-01-25 23:02
399 查看
$categories = array(
array('id'=>1,'name'=>'电脑','pid'=>0),
array('id'=>2,'name'=>'手机','pid'=>0),
array('id'=>3,'name'=>'笔记本','pid'=>1),
array('id'=>4,'name'=>'台式机','pid'=>1),
array('id'=>5,'name'=>'智能机','pid'=>2),
array('id'=>6,'name'=>'功能机','pid'=>2),
array('id'=>7,'name'=>'超级本','pid'=>3),
array('id'=>8,'name'=>'游戏本','pid'=>3),
);
$a = array();
$b = array();
//非递归
foreach ($categories as $key => $value) {
if ($value['pid'] == 0) {
$a[] =& $categories[$key];
}
$b[ $value['id'] ] =& $categories[ $key ];
}
foreach ($categories as $key => $value) {
if (!isset($b[ $value['pid'] ]['son'])) {
$b[ $value['pid'] ]['son'] = array();
}
$b[ $value['pid'] ]['son'][] =& $categories[ $key ];
}
var_dump($a);
width: 142.86px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
//递归
function dg($data,$id){
$a = array();
foreach ($data as $key => $value) {
if ($value['pid'] == $id) {
$value['children'] = dg($data,$value['id']);
if ($value['children'] == null) {
unset($value['children']);
}
$a[] = $value;
}
}
return $a;
}
$a = dg($categories,0);
var_dump($a);
array('id'=>1,'name'=>'电脑','pid'=>0),
array('id'=>2,'name'=>'手机','pid'=>0),
array('id'=>3,'name'=>'笔记本','pid'=>1),
array('id'=>4,'name'=>'台式机','pid'=>1),
array('id'=>5,'name'=>'智能机','pid'=>2),
array('id'=>6,'name'=>'功能机','pid'=>2),
array('id'=>7,'name'=>'超级本','pid'=>3),
array('id'=>8,'name'=>'游戏本','pid'=>3),
);
$a = array();
$b = array();
//非递归
foreach ($categories as $key => $value) {
if ($value['pid'] == 0) {
$a[] =& $categories[$key];
}
$b[ $value['id'] ] =& $categories[ $key ];
}
foreach ($categories as $key => $value) {
if (!isset($b[ $value['pid'] ]['son'])) {
$b[ $value['pid'] ]['son'] = array();
}
$b[ $value['pid'] ]['son'][] =& $categories[ $key ];
}
var_dump($a);
width: 142.86px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
//递归
function dg($data,$id){
$a = array();
foreach ($data as $key => $value) {
if ($value['pid'] == $id) {
$value['children'] = dg($data,$value['id']);
if ($value['children'] == null) {
unset($value['children']);
}
$a[] = $value;
}
}
return $a;
}
$a = dg($categories,0);
var_dump($a);
相关文章推荐
- php无限级分类实现代码(递归方法)
- PHP实现递归无限级分类
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类简单实现方法
- php无限级分类实现方法分析
- PHP无限级分类实现(递归+非递归)
- PHP简单实现无限级分类的方法
- PHP实现递归无限级分类
- php无限级分类实现方法分析
- Php无限级栏目分类读取的实现代码
- PHP简单实现无限级分类的方法
- PHP无限级分类的实现(不使用递归)
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类实现(递归+非递归)
- php无限级分类实现评论及回复
- php无限级分类实现评论及回复
- PHP实现递归无限级分类
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类的实现(不使用递归)
- php无限级分类实现方法分析