<?php //參考別人 //1.整個會員表的數據 $member = array( array('id'=>1, 'agentid'=>0, 'nickname' => 'A'), array('id'=>2, 'agentid'=>1, 'nickname' => 'B'), array('id'=>3, 'agentid'=>1, 'nickname' => 'C'), array('id'=>4, 'agentid'=>8, 'nickname' => 'D'), array('id'=>5, 'agentid'=>3, 'nickname' => 'E'), array('id'=>6, 'agentid'=>3, 'nickname' => 'F'), array('id'=>7, 'agentid'=>3, 'nickname' => 'G'), array('id'=>8, 'agentid'=>8, 'nickname' => 'H') ); /* *2.獲取某個會員的無限下級方法 *$members是全部會員數據表,$mid是用戶的id */ function GetTeamMember($members, $mid) { $Teams=array();//最終結果 $mids=array($mid);//第一次執行時候的用戶id //print_r($mids); do { $othermids=array(); $state=false; foreach ($mids as $valueone) { foreach ($members as $key => $valuetwo) { if($valuetwo['agentid']==$valueone){ //$Teams[]=$valuetwo['id'];//找到個人下級當即添加到最終結果中 一維數組 $Teams[] = array( 'id' => $valuetwo['id'], 'name' => $valuetwo['nickname'] ); //二維數組 $othermids['id']=$valuetwo['id'];//將個人下級id保存起來用來下輪循環他的下級 array_splice($members,$key,1);//從全部會員中刪除他 $state=true; } } } $mids=$othermids;//foreach中找到的個人下級集合,用來下次循環 } while ($state==true); return $Teams; } $res=GetTeamMember($member ,1); print_r($res);