level代表菜單級別,前端根據此控制縮進
pid 上級分類id
代碼
PHP
查詢數據庫中所有菜單,進行排序
public function getCatalogTree()
{
$list = $this->select();
return $this->sort($list);
}
public function sort($data, $pid = 0, $level = 0)
{
static $arr = array();
foreach ($data as $k => $v) {
if ($v['pid'] == $pid) {
$v['level'] = $level;
$arr[] = $v;
$this->sort($data, $v['id'], $level + 1);
}
}
return $arr;
}
/**
* 縮進
*/
function topString(level) {
var str = '';
for (var i=0; i<level; i++)
{
str += '|----';
}
return str;
}