无限极分类、层级(树状数组)构建、数组层级缩进转换

 0) {
        $temp = array_shift($array);
        if (isset($counter[$temp['id']]) && $counter[$temp['id']] > 0) {
            array_push($array, $temp);
        } else {
            if ($temp[$pid_name] == 0) {
                $tree[] = $temp;
            } else {
                $array = ArrayChildAppend($array, $temp[$pid_name], $temp, $child_key_name);
            }
        }
        $counter = ArrayChildrenCount($array, $pid_name);
    }
    return $tree;
}


$demoArray = array(
    array(
        'id'=>1,
        'name'=>'一级分类1',
        'pid'=>0
    ),
    array(
        'id'=>2,
        'name'=>'一级分类2',
        'pid'=>0
    ),
    array(
        'id'=>3,
        'name'=>'一级分类3',
        'pid'=>0
    ),
    array(
        'id'=>4,
        'name'=>'一级分类4',
        'pid'=>0
    ),
    array(
        'id'=>5,
        'name'=>'一级分类5',
        'pid'=>0
    ),
    array(
        'id'=>6,
        'name'=>'二级分类1',
        'pid'=>1
    ),
    array(
        'id'=>7,
        'name'=>'二级分类2',
        'pid'=>1
    ),
    array(
        'id'=>8,
        'name'=>'二级分类3',
        'pid'=>1
    ),
    array(
        'id'=>9,
        'name'=>'二级分类1',
        'pid'=>2
    ),
    array(
        'id'=>10,
        'name'=>'二级分类2',
        'pid'=>2
    ),
    array(
        'id'=>11,
        'name'=>'二级分类3',
        'pid'=>2
    ),
    array(
        'id'=>12,
        'name'=>'二级分类1',
        'pid'=>3
    ),
    array(
        'id'=>13,
        'name'=>'二级分类2',
        'pid'=>3
    ),
    array(
        'id'=>14,
        'name'=>'二级分类3',
        'pid'=>3
    ),
    array(
        'id'=>15,
        'name'=>'三级分类1',
        'pid'=>6
    ),
    array(
        'id'=>16,
        'name'=>'四级分类1',
        'pid'=>15
    ),
);

$tree_array = ArrayToTree($demoArray);
echo '
';
print_r($tree_array);
echo '
'; $ArrayToLevel = ArrayToLevel($demoArray); echo '
';
print_r($ArrayToLevel);
echo '
'; ?>

你可能感兴趣的:(PHP)