定义一个数组 或者从数据库里取出
$data = array(
array(
'id' => 1,
'pid' => 0,
'cName' => '数码'
),
array(
'id' => 2,
'pid' => 0,
'cName' => '家用电器'
),
array(
'id' => 3,
'pid' => 0,
'cName' => '电脑'
),
array(
'id' => 4,
'pid' => 0,
'cName' => '服装'
),
array(
'id' => 5,
'pid' => 0,
'cName' => '食品'
),
array(
'id' => 6,
'pid' => 0,
'cName' => '知识'
),
array(
'id' => 7,
'pid' => 1,
'cName' => '手机'
),
array(
'id' => 8,
'pid' => 1,
'cName' => '摄像机'
),
array(
'id' => 9,
'pid' => 1,
'cName' => '单反'
),
array(
'id' => 10,
'pid' => 1,
'cName' => '卡片'
),
array(
'id' => 11,
'pid' => 2,
'cName' => '高清电视'
),
array(
'id' => 12,
'pid' => 2,
'cName' => '4K超清电视'
),
array(
'id' => 13,
'pid' => 12,
'cName' => 'LETV'
),
array(
'id' => 14,
'pid' => 12,
'cName' => 'MITV'
),
array(
'id' => 15,
'pid' => 8,
'cName' => 'iPhone'
),
array(
'id' => 16,
'pid' => 8,
'cName' => '魅族'
),
array(
'id' => 17,
'pid' => 8,
'cName' => '小米'
),
array(
'id' => 18,
'pid' => 8,
'cName' => '锤子'
),
array(
'id' => 19,
'pid' => 15,
'cName' => 'iPhone6'
),
array(
'id' => 20,
'pid' => 15,
'cName' => 'iPhone6S'
),
array(
'id' => 21,
'pid' => 3,
'cName' => '平板电脑'
),
array(
'id' => 22,
'pid' => 21,
'cName' => 'apple'
),
array(
'id' => 23,
'pid' => 22,
'cName' => 'iPad Air 2'
),
array(
'id' => 24,
'pid' => 3,
'cName' => '笔记本'
),
array(
'id' => 25,
'pid' => 24,
'cName' => 'Macbook Pro'
),
array(
'id' => 26,
'pid' => 3,
'cName' => 'Macbook Air'
),
);
利用id排序 展示时多加一个html属性 子类级数越多 空格越多
function tree($arr, $parentId = 0, $level = 0, $html = '-')
{
$data = array();
foreach ($arr as $k => $v) {
if ($v->parent_id == $parentId) {
if ($level != 0) {
$v->html = str_repeat(' ', $level);
$v->html .= '|';
}
$v->html .= str_repeat($html, $level);
$data[] = $v;
$data = array_merge($data, tree($model, $v->id, $level + 1));
}
}
return $data;
}