<?php
$array = array(
array('id' => 1, 'pid' => 0, 'name' => '河北省'),
array('id' => 2, 'pid' => 0, 'name' => '北京市'),
array('id' => 3, 'pid' => 1, 'name' => '邯郸市'),
array('id' => 4, 'pid' => 2, 'name' => '朝阳区'),
array('id' => 5, 'pid' => 2, 'name' => '通州区'),
array('id' => 6, 'pid' => 4, 'name' => '望京'),
array('id' => 7, 'pid' => 4, 'name' => '酒仙桥'),
array('id' => 8, 'pid' => 3, 'name' => '永年区'),
array('id' => 11, 'pid' => 1, 'name' => '武安市'),
);
function generateTree($array){
// 构造数据
$items = array();
foreach($array as $value){
$items[$value['id']] = $value;
}
// 遍历数据
$tree = array();
foreach($items as $key => $item){
if(isset($items[$item['pid']])){
$items[$item['pid']]['son'][] = &$items[$key];
}else{
$tree[] = &$items[$key];
}
}
return $tree;
}
$list = generateTree($array);
var_dump($list);
// 结果
array(2) {
[0]=>
array(4) {
["id"]=>
int(1)
["pid"]=>
int(0)
["name"]=>
string(9) "河北省"
["son"]=>
array(2) {
[0]=>
array(4) {
["id"]=>
int(3)
["pid"]=>
int(1)
["name"]=>
string(9) "邯郸市"
["son"]=>
array(1) {
[0]=>
array(3) {
["id"]=>
int(8)
["pid"]=>
int(3)
["name"]=>
string(9) "永年区"
}
}
}
[1]=>
array(3) {
["id"]=>
int(11)
["pid"]=>
int(1)
["name"]=>
string(9) "武安市"
}
}
}
[1]=>
array(4) {
["id"]=>
int(2)
["pid"]=>
int(0)
["name"]=>
string(9) "北京市"
["son"]=>
array(2) {
[0]=>
array(4) {
["id"]=>
int(4)
["pid"]=>
int(2)
["name"]=>
string(9) "朝阳区"
["son"]=>
array(2) {
[0]=>
array(3) {
["id"]=>
int(6)
["pid"]=>
int(4)
["name"]=>
string(6) "望京"
}
[1]=>
array(3) {
["id"]=>
int(7)
["pid"]=>
int(4)
["name"]=>
string(9) "酒仙桥"
}
}
}
[1]=>
array(3) {
["id"]=>
int(5)
["pid"]=>
int(2)
["name"]=>
string(9) "通州区"
}
}
}
}
php 无限级分类
猜你喜欢
转载自my.oschina.net/xiaoerit/blog/1816574
今日推荐
周排行