请问一个数组写一个无线循环怎么写呢

数组是这样的
PHP code

$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');


请问我如果要写出他的组织机构树状结构 怎么写这个递归呢,没搞明白

作者: youxu_you   发布时间: 2011-06-04

$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);

刚才看到的一个帖子,有可能帮到你

作者: bojimiya   发布时间: 2011-06-04