试试我这个:
function createMenuTree($data = array(), $pid = 0){
if (empty($data)){
return array();
}
static $level = 1;
$returnArray = array();
foreach ($data as $node){
if ($node['parent_id'] == $pid){
$returnArray[] = array(
'cat_id' => $node['cat_id'],
'cat_name' => $node['cat_name'],
'level' => $level,
'parent_id' => $node['parent_id'],
'show_in_nav' => $node['show_in_nav'],
'is_show' => $node['is_show'],
'sort_order' => $node['sort_order']
);
if (hasChild($node['cat_id'], $data)){
$level++;
$returnArray = array_merge($returnArray, createMenuTree($data, $node['cat_id']));
$level--;
}
}
}
return $returnArray;
}
function hasChild($cid, $data){
$hasChild = false;
foreach ($data as $node){
if ($node['parent_id'] == $cid){
$hasChild = true;
break;
}
}
return $hasChild;
}
字段跟你的不是很一样,但是思路好像跟你想要的差不多,你可以自己拿去修改一下。