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. SQL-Server2008 数据库发布订阅

    参考博客园文章http://www.cnblogs.com/tyb1222/archive/2011/05/31/2064944.html 添加安全数据库 更改数据库名称 SQL语句 select @ ...

  2. The L1 Median (Weber 1909)

    The L1 Median (Weber 1909) 链接网址 Derived from a transportation cost minimization problem, the L1 medi ...

  3. curl命令常见用法汇总 good

    curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服 ...

  4. App上架出现问题-ERROR ITMS-90034

    1.打开钥匙串,显示->显示已过期的证书,因为有些过期的证书会被钥匙串隐藏起来,让过期的证书都显示出来,删掉过期的证书. 2.经检查,我发现我的AppleWWDRCA.cer证书过期了,所以我就 ...

  5. python+selenium实现跨浏览器兼容性测试

    python https://www.python.org/ python是一种脚本语言, 易学易用,可以助你快速实现业务逻辑,高效集成系统. ----- http://zh.wikipedia.or ...

  6. TNS-01189: The listener could not authenticate the user

    查看监听时,发现监听状态异常,报TNS-01189: The listener could not authenticate the user错误 $ lsnrctl stat LSNRCTL - P ...

  7. jQuery:多个AJAX/JSON请求对应单个回调并行加载

    因为我们使用jQuery,这意味着需要调用 jQuery.getScript 和 jQuery.getJSON 函数. 我知道这些函数都是异步执行(asyncronously)并且会延迟一段时间返回, ...

  8. 连接sql server数据库的两种方式

    class DB     { private static SqlConnection conn; public static SqlConnection getConn() { //conn = n ...

  9. jquery 操作select

    jQuery("#select_id").change(function(){}); // 1.为Select添加事件,当选择其中一项时触发 var checkValue = jQ ...

  10. EL表达<%@page isELIgnored="false"%>问题

    上网查找资料后得知:主要原因是EL表达式无法被解析到. 其实从后台取值并传值到前台来根本就没有错,而前台JSP页面EL表达式无效,解析不到EL表达式,引起的原因是web.xml中: <web-a ...