无限极分类 递归和迭代源码

来源:互联网 发布:正规淘宝小号购买平台 编辑:程序博客网 时间:2024/06/05 16:34
<?php
header('content-type:text/html;charset=utf-8');
 $list=Array (  Array ( 'id' => 1 ,'name' => 'A' ,'pid' => 0 ) , Array ( 'id' => 2 ,'name' => 'B' ,'pid' => 0 ) , Array ( 'id' => 3 ,'name' => 'C' ,'pid' => 1 ), Array ( 'id' => 4 ,'name' => 'D' ,'pid' => 1 ) , Array ( 'id' => 5 ,'name' => 'E' ,'pid' => 2 ) , Array ( 'id' => 6 ,'name' => 'F' ,'pid' => 2 ) , Array ( 'id' => 7 ,'name' => 'G' ,'pid' => 3 ) , Array ( 'id' => 8 ,'name' => 'H' ,'pid' => 3 ) , Array ( 'id' => 9 ,'name' => 'I' ,'pid' => 3 ) , Array ( 'id' => 10 ,'name' => 'J' ,'pid' => 4 ) , Array ( 'id' => 11 ,'name' => 'K' ,'pid' => 4 ), Array ( 'id' => 12 ,'name' => 'L' ,'pid' => 4 ) , Array ( 'id' => 13 ,'name' => 'M' ,'pid' => 5 ) , Array ( 'id' => 14 ,'name' => 'N' ,'pid' => 5 ) , Array ( 'id' => 15 ,'name' => 'O' ,'pid' => 5 ) , Array ( 'id' => 16 ,'name' => 'P' ,'pid' => 6 ) , Array ( 'id' => 17 ,'name' => 'Q' ,'pid' => 6 ) , Array ( 'id' => 18 ,'name' => 'R' ,'pid' => 6 ) , Array ( 'id' => 19 ,'name' => 'S' ,'pid' => 6 ) , Array ( 'id' => 20 ,'name' => 'T' ,'pid' => 0 ) , Array ( 'id' => 21 ,'name' => 'U' ,'pid' => 20 ) , Array ( 'id' => 22 ,'name' => 'V' ,'pid' => 20 ) , Array ( 'id' => 23 ,'name' => 'W' ,'pid' => 21 ) , Array ( 'id' => 24 ,'name' => 'X' ,'pid' => 21 ) , Array ( 'id' => 25 ,'name' => 'Y' ,'pid' => 22 ) , Array ( 'id' => 26 ,'name' => 'Z' ,'pid' => 22 ) );
echo "递归<br>";
 function getTree($list,$parent,$level=0)
 {
     $tree=array();
    foreach ($list as  $value) {
        if ($value['pid']==$parent) {
            $value['level']=$level;
            $tree[]=$value;
            $tree=array_merge($tree,getTree($list,$value['id'],$level+1));
        }
    }
     return $tree;
 }
$data=getTree($list,0);
foreach ($data as $key => $value) {
    echo str_repeat("——",$value['level']),$value['name'],'<br>';
}
echo "<hr>","迭代";

function iterate($list,$parent)
{
    $tree=array();
    while ($parent>0) {
        foreach ($list as $key => $value) {
            if ($value['id']==$parent) {
                $tree[]=$value;
                $parent=$value['pid'];
                break;
            }
        }
        
    }
    return $tree;
}
var_dump(iterate($list,26));
 ?>
0 0
原创粉丝点击