php将两个数组相同的key合并到一个数组

php将两个数组相同的key合并到一个数组

$arr = array(
    array(
    ‘id‘ => 1,
    ‘user_name‘=>‘test1‘
    ),
    array(
    ‘id‘ => 2,
    ‘user_name‘=>‘test2‘
    ),
    array(
    ‘id‘ => 3,
    ‘user_name‘=>‘test3‘
    )
);
$arr2 = array(
     array(
    ‘id‘ => 1,
    ‘shop_name‘=>‘shop1‘
    ),
    array(
    ‘id‘ => 5,
    ‘shop_name‘=>‘shop2‘
    ),
    array(
    ‘id‘ => 3,
    ‘shop_name‘=>‘shop3‘
    )
);
怎么根据2个数组id相同的一维数组,将$arr2的shop_name添加到$arr,如果没有相同的id,shop_name为空,形成如下数组:
$good_arr =array(
    array(
    ‘id‘ => 1,
    ‘user_name‘=>‘test1‘,
    ‘shop_name‘=>‘shop1‘
    ),
    array(
    ‘id‘ => 2,
    ‘user_name‘=>‘test2‘,
    ‘shop_name‘=>‘‘
    ),
    array(
    ‘id‘ => 3,
    ‘user_name‘=>‘test3‘,
    ‘shop_name‘=>‘shop3‘
    )

);

PHP5.5支持一个很棒的函数array_column()非常适合干这个事情,具体请参考手册:http://cn2.php.net/manual/zh/function.array-column.php



$shop_name = array_column($arr2, ‘shop_name‘, ‘id‘);
foreach($arr as $key => $item) {
    $exist = array_key_exists($item[‘id‘], $shop_name);
    $arr[$key][‘shop_name‘] = $exist ? $shop_name[$item[‘id‘]] : ‘‘;
}

原文地址:https://www.cnblogs.com/wrld/p/10966190.html

时间: 2024-10-07 02:50:27

php将两个数组相同的key合并到一个数组的相关文章

C语言将两个整数数组合并为一个数组

下面给定两个排序号的整数数组,将他们合并为一个数组并重新排序. #include <stdio.h> #define NMAX 10 void printIntArray(int a[], int n); void merge(int c[], int *nc, int a[], int na, int b[], int nb); int main(void) { int x[NMAX] = {1,3,5,6,7}; // 第一个排序好的数组 int y[NMAX] = {2,3,4}; //

将两个数组A和B合并为一个有序的C数组

1 # include<iostream> 2 # include<cstdio> 3 # include<algorithm> 4 using namespace std; 5 void Sort(int a[],int b[],int c[],int n,int m) 6 { 7 int A=0, B=0, C=0; 8 while(A<n && B<m) 9 { 10 if(a[A] <= b[B]) 11 c[C++] = a[

PHP 获取数组任意下标key的上一个prev和下一个next下标值

PHP 获取数组任意下标key的上一个prev和下一个next下标值 <?php $xoops[1] = '小'; $xoops[2] = '孩'; $xoops[3] = '子'; $xoops[4] = '气'; $steps = new Steps(); foreach($xoops as $key=>$value){ $steps->add($key); } $steps->setCurrent(3);//参数为key值 echo '上一个下标:'.$steps->g

将两个排好序的数组,合并到另外一个数组中,并且合并之后的数组也是有序的。

int a[3] = {12, 15, 17}; int b[4] = { 2, 8, 16, 22}; int c[7] = {0}; int i = 0, j = 0, k = 0; while (i < 3 && j < 4 ) { if (a[i] > b[j]) { c[k++] = b[j++]; } else { c[k++] = a[i++]; } } while (i < 3) { c[k++] = a[i++]; } while (j <

php将两个或多个数组合并为一个数组函数

array_merge() 函数把两个或多个数组合并为一个数组. 例子 1 <?php $a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("c"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); ?> 输出: Array

如何将一个数组中的元素插入另一个数组

如何将一个数组中的元素插入另一个数组:本章节直接给出一段将一个数组中元素插入另一个数组中的代码实例,直接套用就可以了.代码如下: var first = ['a','b','c']; var second = ['1','2','3']; var index = 1; second.unshift(index, 0); Array.prototype.splice.apply(first, second); 原文地址是:http://www.softwhy.com/forum.php?mod=v

88. Merge Sorted Array【leetcode】算法,java将两个有序数组合并到一个数组中

88. Merge Sorted Array Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The n

C#把某个数组的一部分复制到另一个数组中的两种方法:Buffer.BlockCopy和Array.Copy

static void Main(string[] args) { int[] src = new[] { 1, 2, 3, 4, 5, 6 }; const int destLen = 4;//目标数组大小 int int_size = sizeof(int);//用于获取值类型的字节大小. int[] dest = new int[destLen]; //只支持基元类型,按字节偏移复制 Buffer.BlockCopy(src, (src.Length - destLen) * int_si

js数组合并(一个数组添加到另一个数组里面)方法

js定义两个数组. var arrA=[1,2,3]; var arrB=[4,5,6]; 要实现[1,2,3,4,5,6],如果直接arrA.push(arrB); 则arrB只会作为了arrA的一个元素.执行如图: 要合并或连接,则需要使用concat() 方法. concat(Array) 方法 concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.array1.concat([item1[, item2[, . . . [, itemN