php 递归获取部门_部门列表找每一个部门下的所有员工数,循环调用递归出现重复数组的问题...

问题:

代码如下:

//查找所有下级部门的id

public static function actionSon($company_id,$id)

{

global $temp;

$modelClass = self::find()

->where(['parent_id'=>$id,'company_id'=>$company_id])

->all();

if(!empty($modelClass)){

foreach ($modelClass as $k => $value) {

$temp[] =$value->id;

self::actionSon($company_id,$value->id);//调用函数,传入参数,继续查询下级

}

}

return $temp;

}

fields里面调用

public function fields()

{

return [

'id',

'company_id'

'user_count'=>function(){

// return $this->getUserCount();

$dep_ids=self::actionSon($this->company_id,$this->id);

// $GLOBALS['temp']=[];

//unset($temp);

print_r($dep_ids);

},

];

}

结果输出:

ef5cf3d91caa027945b11d6e6bc76448.png

得出重复的数据,要是列表还有部门的话会这样一直重复下去,如何解决这个问题?

我需要的结果是每调用一次就能获取到当前部门下的所有子部门的id,以一维数组的形式展示。

把$GLOBALS['temp']=[];放开它只能找到一级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值