1. 程式人生 > >php 高效、非遞迴迴圈所有下級,並將結果存為一維陣列

php 高效、非遞迴迴圈所有下級,並將結果存為一維陣列

1.取出所有資料

  public function teammember($id){
            $next = pdo_fetchall("select id,openid,agentid from ".tablename("ewei_shop_member")." where agentid > 0");
            $res = $this->GetTeamMember($next,$id);//呼叫
            return $res;
        }


2.根據父id查詢(do ……while)

  public
function GetTeamMember($members, $mid) { $Teams=array();//最終結果 $mids=array($mid);//第一次執行時候的使用者id do { $othermids=array(); $state=false; foreach ($mids as $valueone) { foreach ($members as $key => $valuetwo
) { if($valuetwo['agentid']==$valueone){ $Teams[]="'".$valuetwo['openid']."'";//找到我的下級立即新增到最終結果中 $othermids[]=$valuetwo['id'];//將我的下級id儲存起來用來下輪迴圈他的下級 //var_dump($othermids); // array_splice($members,$key,1);//從所有會員中刪除他
$state=true; } } } $mids=$othermids;//foreach中找到的我的下級集合,用來下次迴圈 } while ($state==true); return $Teams; }