您的位置:首页 > 编程语言 > PHP开发

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: