array_map的多个数组技巧

# 获取家列表
$home_list = Model::home_users()->selectBySql(
    ‘select
    h.home_id,h.name
    from home_users as hu left join home as h on hu.home_id = h.home_id
     where hu.user_id=?‘
    ,[$this->token_info[‘id‘]]
);
输出:
 [
        [‘home_id‘=>‘1‘,‘count‘=>‘31‘],
        [‘home_id‘=>‘2‘,‘count‘=>‘24‘]
    ];
   
# 家的消息数目
$msg = self::readMsg([
    ‘user_id‘=>$this->token_info[‘id‘],
    ‘home_id‘=>$homes,
    ‘read_type‘=>‘r‘
]);
返回:
 [
        [‘home_id‘=>‘1‘,‘count‘=>‘31‘],
        [‘home_id‘=>‘2‘,‘count‘=>‘24‘]
    ];

$new = array_map(function($h,$m){
    return array_merge($h,$m);
},$home_list,$msg);
返回:
Array
(
    [0] => Array
        (
            [home_id] => 1
            [home_name] => 家1
            [count] => 31
        )

    [1] => Array
        (
            [home_id] => 2
            [home_name] => 家2
            [count] => 24
        )

)
时间: 2024-11-10 22:52:53

array_map的多个数组技巧的相关文章

Java数组技巧攻略

  Java数组技巧攻略 0.  声明一个数组(Declare an array) [js] view plaincopyprint? String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"a","b",&q

C++指针数组、数组指针、数组名及二维数组技巧汇总

这篇文章主要介绍了C++指针数组.数组指针.数组名及二维数组技巧汇总,对于深入理解C++数组与指针来说非常重要,需要的朋友可以参考下. 本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧.是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用. 一.关于数组名 假设有数组: 1 int a[3] = {1, 2, 3} 1.数组名代表数组第一个元素的地址,注意,不是数组地址(虽然值相等),是数组第一个元素地址,a 等同于 &a[0]; a+1是第二个元素的地

分拆数组技巧应用

给你一个数组A[1..n],请你在O(n)的时间里构造一个新的数组B[1..n],使得B[i]=A[1]*A[2]*...*A[n]/A[i].你不能使用除法运算. 思路1:题目中说明,不能用除法,那一定是在相乘的时候,省略那一项,然后时间复杂度要0(n),就不能两层循环,而是要利用前面的相乘信息来降低复杂度. 算法:相似的分拆技术在数组题中.线性时间构造两个新数组,从开始遍历相乘 T1[0] =1,T1[i]=T[i-1]*A[i-1]  ;而 T2从后往前遍历相乘 T2[len-1] =1,

JavaScript数组技巧

1.随机选择一个数组项 var items = [1, 2, 'a', 3, 4, 'b', 5, 'c', 6, 119, 'd']; var randomItem = items[Math.floor(Math.random() * items.length)]; 2.将参数对象转换为数组 var argArray = Array.prototype.slice.call(arguments); 3.把一个数组添加到另外一个数组 var arr1 = [1, 2, 3]; var arr2

关于数组技巧的总结

1 删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. var arr = ['a','a','a','a','b','c','d','b','a','e']; Array.prototype.distinct = function(){ var ret = []; for (var i=0; i < this.length; i++){ for (var j = i+1; j<this.length;){ if (this[i] === this[j]){ r

后缀数组的一些技巧

p { margin-bottom: 0.25cm; line-height: 120% } 后缀数组sa[i]:i<j,有sa[i]开头的字符串字典序<sa[j]开头字典序. 求后缀数组的方法:倍增{ 按一段排序,倍增至第二段为第二关键字,把他的值搞到桶中,比较. 若两个合并的串前后两段一毛一样,排名设为一样.就这样搞. } rnk[i]:i为开头的后缀的排名 height数组:KMP的思想{ height数组为排名为i与i-1的后缀的最长公共子串. 利用KMP的思想:有h[rnk[i]]&

array_map常用技巧

array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组. 简单来说 "array_map" 会对数组中的每一项进行处理,并返回处理后的数据. 定义: array_map的参数为array_map(处理函数,数组,数组...) 处理函数可以是匿名函数,也可以是具名函数 数组可以是多个数组或者是单个数组 用法: 应用场景1:对数组的每一项进行乘法操作 $arr = array(1,2,3,4,5); $result = array_m

用数组解决问题(一)

由于数组在编程中极为常见,并且数组技巧在非数组场合下也常常被使用,因此数组可以作为用数据结构解决问题的重要练兵场所. 一.基础知识概述 1,存储 这是最基本的操作.数组是一组变量的集合,我们可以对其中的每个变量进行赋值. tenIntegerArray[0] = 5; //把整数5赋值给前面所声明的数组的第1个元素 int tenIntegerArray[10] = {1,2,3,6,12,-57,30987,0,-287,9}; //给数组中的每个元素赋一个特定的值 int tenIntege

PHP数组函数的一些用法

echo '1.array_multisort( )排序<br/>'; $arr = array(5,6,2,7,8,1); array_multisort($arr,SORT_DESC); print_r($arr); echo '<hr/>'; echo '2.array_merge( )合并数组<br/>'; $arr = array(1,3,54,7,'rrr','ryuih','end'); $c = array(); print_r(array_merge(