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

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

  1. IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素

    从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...

  2. for循环和foreach循环遍历集合的效率比较

    先上代码 package com.test; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...

  3. C# foreach 循环遍历数组

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  4. es6的foreach循环遍历

    forEach forEach是Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: 结果: 这段代码相当于: for (var k = 0, length = array.length ...

  5. 二维数组遍历的方式(for普通循环遍历、foreach循环遍历、toString方式遍历)

    package com.Summer_0421.cn; import java.lang.reflect.Array; import java.util.Arrays; /** * @author S ...

  6. php中foreach循环遍历二维数组

    最近在用tp3.2框架,在查询的时候用到了select(),这条语句返回的是二维数组,所以在对返回的数据做处理时,遇到了些麻烦,百度了下foreach,终于用foreach解决了数据的筛选问题 (因为 ...

  7. foreach 循环遍历 以及函数的应用

    foreach( 对集合每个元素的引用 in 集合 ){ } 举例: int[] a = new int[5]{1,2,3,4,5};foreach( int b in a ){ //b就是a中的每个 ...

  8. mybatis问题。foreach循环遍历数组报错情况,及其解决方法

    根据条件查询数据列表,mybatis查询代码如下 如果只查询属于特定部门拥有的数据权限.这需要用 String[ ] codes保存当前部门及其子部门的部门编码. 所以需要在mybatis中遍历编码数 ...

  9. 集合-新特性foreach循环遍历集合或项目

    1.增强for循环对集合的遍历 点击查看代码 @Test //集合遍历 public void test3(){ Collection coll = new ArrayList(); coll.add ...

随机推荐

  1. android Shader类简介_渲染图像示例

    Android中提供了Shader类专门用来渲染图像以及一些几何图形,Shader下面包括几个直接子类,分别是BitmapShader. ComposeShader.LinearGradient.Ra ...

  2. python 环境问题

    1. 查看python安装的模块及版本 $pip freeze Babel== Flask== Flask-HTTPAuth== Flask-RESTful== Flask-SQLAlchemy==2 ...

  3. iOS添加自动更新的代码

    - (void)versionUpdate{ //获得当前发布的版本 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_ ...

  4. (转)在PHP语言中使用JSON

    原文 : http://www.ruanyifeng.com/blog/2011/01/json_in_php.html --------------------------------------- ...

  5. python password输入

    1.linux下用getpass,没有星号提示,符合linux风格 from getpass import getpasspwd = getpass('Enter the password: ') 2 ...

  6. Oracle 监听器日志文件过大导致监听异常

    Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...

  7. 发现前端框架 bui-min.js

    http://www.builive.com/apps/default/main.html#menu/code http://www.builive.com/demo/grid-plugin.php# ...

  8. 刷新本地的DNS缓存

    用“WIN +R”快捷键打开运行窗口,输入“cmd”命令,进行命令行窗口.

  9. HTML语言的一些元素(二)

    3)表示元素:<b>,<i>,<u>,<s>,<tt>,<sup>,<sub>,<strike>,< ...

  10. Notice: Undefined offset 的解决方法

    Notice: Undefined offset: 1 in D:\wwwroot\wr\askseo\404.php on line 5 Notice: Undefined offset: 2 in ...