yii2通过foreach循环遍历在一个用户组中取出id去另一表里查寻信息并且带着信息合并原数组信息---案例

yii2通过foreach循环遍历在一个用户组中取出id去另一表里查寻信息并且带着信息合并元数组信息---案例

public function actionRandomLists(){

//查询到了所有用户的信息
$UserInfo=UserOperate::find()->select('id,username,sex,signature,lng,lat,imgs')->asArray()->all();

//循环遍历取出来所有的用户信息中想要的id,然后去另一数据表查询想要的内容

foreach($UserInfo as $key => $val){
  $user_id = explode(',',$val['id']);
  $PetList[]=PetOperate::find()->select('pet_sex,pet_category,pet_name,pet_imgs')->where(['user_id'=>$user_id])->asArray()->all();

  //(支持多次查询)第二次根据拿到的id循环遍历查询另一数据表的信息

  $UserFriendInfo=UserFriendOperate::find()->where(['user_id'=>$user_id])->asArray()->all();
  foreach($UserFriendInfo as $k => $v){

    //进行对比来查看拿到的数组里面有没有要进行对比的数组
    $array[] = $v['friend_id'];
    if(in_array($user_id,$array)){

      //如果有那么返回的方式如下
      $UserInfo[$key]['is_friend'] = 'true';
    }else{

      //如果没有那么返回的方式如下
      $UserInfo[$key]['is_friend'] = 'false';
    }
  }

}

//数组合并
foreach ($UserInfo as $key => $val) {
$UserInfo[$key]['pet'] = $PetList[$key];
}

//接口逻辑处理完成之后按照框架封装的返回值的类型返回数据即可
return Helper::format_data ( SUCC, $UserInfo);
}

原文地址:https://www.cnblogs.com/findher/p/10610039.html