$arr = [
1 => ['name' => '江苏', 'pid' => 0],
2 => ['name' => '徐州', 'pid' => 1],
3 => ['name' => '南京', 'pid' => 1],
4 => ['name' => '泰州', 'pid' => 1],
5 => ['name' => '靖江', 'pid' => 4],
6 => ['name' => '西来', 'pid' => 5],
7 => ['name' => '常州', 'pid' => 1],
8 => ['name' => '新北区', 'pid' => 7],
9 => ['name' => '百草苑', 'pid' => 8],
10 => ['name' => '天宁区', 'pid' => 7]
];
不使用递归, 引用 该怎么实现呢 0.0
1
mhycy 2015-04-01 10:24:59 +08:00
你想达到怎样的输出效果?
|
2
ksc010 2015-04-01 10:36:47 +08:00
给每个分类记录他的parentid 和所有子类id
|
3
yuptyy OP |
4
alex321 2015-04-01 10:43:49 +08:00 1
|
5
zhujinliang 2015-04-01 10:50:43 +08:00
用类
|
6
invite 2015-04-01 10:53:36 +08:00 1
这个跟目录一个道理:
用绝对路径,直接可以搜索以XX打头。 否则相对路径都需要类似递归的吧。 |
7
tabris17 2015-04-01 11:01:30 +08:00 1
左右值
|
8
cevincheung 2015-04-01 11:03:35 +08:00
http://www.oschina.net/code/snippet_173183_11767
function genTree5($items) { foreach ($items as $item) $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']]; return isset($items[0]['son']) ? $items[0]['son'] : array(); } function genTree9($items) { $tree = array(); //格式化好的树 foreach ($items as $item) if (isset($items[$item['pid']])) $items[$item['pid']]['son'][] = &$items[$item['id']]; else $tree[] = &$items[$item['id']]; return $tree; } |
9
sambohuang 2015-04-01 12:45:18 +08:00 via Android 1
左右键
|
10
ywisax 2015-04-01 15:00:01 +08:00 1
上面也提到了,用mptt吧。
|
11
imink 2015-04-01 19:53:40 +08:00 1
楼主参考这个包。https://github.com/etrepat/baum
|
12
elvba 2015-04-01 22:52:58 +08:00 1
|
13
Septembers 2015-04-02 03:15:46 +08:00 via Android
扔前端处理吧
|