刘伟 发表于 2017-4-3 12:04:19

PHP无限极分类 非递归

废话不多说:直接代码,把下面的代码访问以下在本地
<?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'];
}
?>

访问结果如下:

有些知识多说也说不明白,程序结果更令人信服,希望对你们有帮助
页: [1]
查看完整版本: PHP无限极分类 非递归