分类设计与读取

$rows = array(
array('id'=>1, 'path'=>'0,1', 'name'=>'手机'),
array('id'=>3, 'path'=>'0,1,3', 'name'=>'智能手机'),
array('id'=>5, 'path'=>'0,1,5', 'name'=>'普通手机'),
array('id'=>2, 'path'=>'0,2', 'name'=>'电脑'),
array('id'=>4, 'path'=>'0,2,4', 'name'=>'台式电脑'),
array('id'=>6, 'path'=>'0,2,6', 'name'=>'平板电脑'),
array('id'=>8, 'path'=>'0,2,6,8', 'name'=>'IOS系统'),
array('id'=>11, 'path'=>'0,2,6,8,11', 'name'=>'IOS8'),
array('id'=>12, 'path'=>'0,2,6,8,12', 'name'=>'IOS9'),
array('id'=>9, 'path'=>'0,2,6,9', 'name'=>'Android系统'),
array('id'=>10, 'path'=>'0,2,6,10', 'name'=>'其他系统'),
array('id'=>7, 'path'=>'0,2,7', 'name'=>'笔记本电脑'),
);

$tree = array('name'=>'root', 'child'=>array());
foreach($rows as $row) {
$nodes = explode(',', $row['path']);
array_shift($nodes);
$last = &$tree; //&取地址
foreach($nodes as $node) {
if(!isset($last['child'][$node])) {
$last['child'][$node] = array('id'=>$node, 'name'=>$row['name'], 'child'=>array());
}
$last = &$last['child'][$node];
}
if(count($last['child'])==0) { unset($last['child']); }
}

print_r($tree['child']);

posted @ 2015-09-17 14:31  我寺神经病  阅读(92)  评论(0)    收藏  举报