$new = array(); if ($relateddepartmentsnew) { foreach ($relateddepartmentsnew as $relatK=>$relatV) { $new[$relatK]['relateddepartments'] = $relatV; } } if ($zzfgnew) { foreach ($zzfgnew as $zzfgK=>$zzfgV) { $new[$zzfgK]['zzfg'] = $zzfgV; } }
let arr1 = [1,2,3]; let arr2 = [4,5,6];
1、concat()
let arr = arr1.concat(arr2); console.log(arr)// [1,2,3,4,5,6]
Array对象提供的concat()方法,连接两个或更多的数组,并返回一个新数组,原数组不变。当我们需要连接多个数组的时候,效率很低,会造成很大的内存浪费,所以这个方法肯定不是最好的。
2、for循环
for(let i in arr1){ arr2.push(arr1[i]) } console.log(arr2)// [1,2,3,4,5,6]
性能相对来说要高一点,但是会改变数组本身的值,当然其它循环也可以实现
3.apply
arr1.push.apply(arr1,arr2) console.log(arr1)// [1,2,3,4,5,6]
调用arr1.push这个函数实例的apply方法,同时把,arr2当作参数传入,这样arr1.push这个方法就会遍历arr2数组的所有元素,达到合并的效果。也会改变数组本身的值
4、ES6 – 扩展运算符
let arr = [...arr1,...arr2] console.log(arr)// [1,2,3,4,5,6]
这个方法不会改变原数组的内容,返回新数组。
一、concat()
concat() 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回。该方法会产生一个新的数组,但并不改变原数组。
arr1 = [1,2];
arr2 = ["aa","as"];
console.log(arr1.concat(arr2));//[1, 2, "aa", "as"]
//或
console.log([].concat(arr1,arr2));//[1, 2, "aa", "as"]
//原数组不改变
console.log(arr1);//[1,2]
console.log(arr2);//["aa","as"]
二、array.push.apply()
该方法会改变原数组。
var arr1 = [1,2];
var arr2 = ["aa","as"];
arr1.push.apply(arr1, arr2);
console.log(arr1); //[1, 2, "aa", "as"]
console.log(arr2); //["aa", "as"]
当然你也可以 通过对多个数组遍历,从而将多个数组复制给另一个新数组,但是这么做你不觉得累吗?
$new = array(); if ($relateddepartmentsnew) { foreach ($relateddepartmentsnew as $relatK=>$relatV) { $new[$relatK]['relateddepartments'] = $relatV; } } if ($zzfgnew) { foreach ($zzfgnew as $zzfgK=>$zzfgV) { $new[$zzfgK]['zzfg'] = $zzfgV; } }
转载于:https://www.cnblogs.com/gaohj/p/5001083.html