PHP无限极分类 非递归

[size=x-small]废话不多说:直接代码,把下面的代码访问以下在本地

<?php

$arr = array(
    array('id' => '3', 'name' => "上海", 'parid' => 4,'lev'=>4),
    array('id' => '4', 'name' => "上海1", 'parid' => 5,'lev'=>3),
    array('id' => '5', 'name' => "上海2", 'parid' => 6,'lev'=>2),
    array('id' => '6', 'name' => "上海3", 'parid' => 0,'lev'=>1),
    array('id' => '13', 'name' => "北京", 'parid' => 14,'lev'=>4),
    array('id' => '14', 'name' => "北京1", 'parid' => 15,'lev'=>3),
    array('id' => '15', 'name' => "北京2", 'parid' => 16,'lev'=>2),
    array('id' => '16', 'name' => "北京3", 'parid' => 0,'lev'=>1),
);

function tree($list,$pid=0,$level=0,$html='--'){
    static $tree = array();
    foreach($list as $v){
        if($v['parid'] == $pid){
            $v['lev'] = $level;
            $v['html'] = str_repeat($html,$level);
            $tree[] = $v;
            tree($list,$v['id'],$level+1);
        } 
    }
    return $tree;
}
$data=tree($arr,$pid=0,$level=0,$html='--');
var_dump($data);

foreach($data as $v){
    echo "<br>";
    echo $v['html'].$v['name'];
}

?>


访问结果如下:
PHP无限极分类 非递归

有些知识多说也说不明白,程序结果更令人信服,希望对你们有帮助[/size]

你可能感兴趣的:(PHP,无限级分类)