数组是这样的$arr[]=array('id'=>'1','name'=>'1','pid'=>'0');
$arr[]=array('id'=>'2','name'=>'2','pid'=>'1');
$arr[]=array('id'=>'3','name'=>'3','pid'=>'2');
$arr[]=array('id'=>'4','name'=>'4','pid'=>'2');
$arr[]=array('id'=>'5','name'=>'5','pid'=>'4');请问我如果要写出他的组织机构树状结构 怎么写这个递归呢,没搞明白

解决方案 »

  1.   

    $ar = array (
      1 => array ( 'catid'  => '1', 'uid' => '0', 'num' => 1 ),
      2 => array ( 'catid'  => '2', 'uid' => '0', 'num' => 1 ),
      3 => array ( 'catid'  => '3', 'uid' => '0', 'num' => 1 ),
      4 => array ( 'catid'  => '4', 'uid' => '1', 'num' => 1 ),
      5 => array ( 'catid'  => '5', 'uid' => '1', 'num' => 1 ),
      6 => array ( 'catid'  => '6', 'uid' => '2', 'num' => 1 ),
      7 => array ( 'catid'  => '7', 'uid' => '4', 'num' => 1 ),
      8 => array ( 'catid'  => '8', 'uid' => '7', 'num' => 1 ),
      9 => array ( 'catid'  => '9', 'uid' => '5', 'num' => 1 ),
      10 => array ( 'catid' => '10', 'uid' => '4', 'num' => 1 ),
      11 => array ( 'catid' => '10', 'uid' => '4', 'num' => 1 ),
    );
    foreach( $ar as $k=>$v)
    {
       $o = $v['uid'];
       while(isset($ar[$o]))
       {
           $ar[$o]['num'] += $v['num'];
           $o = $ar[$o]['uid'];
       }
     
    }
    print_r($ar);刚才看到的一个帖子,有可能帮到你