转自:http://www.cnblogs.com/losesea/archive/2013/06/14/3134900.html

题目:有以下2个二维数组

1
$a=Array(0 => Array(id => 66,class_name => www.iiwnet.com),1 => Array(id => 67,class_name => linux ));
2
$b=Array(0 => Array(class_count=> 8),1 => Array(class_count => 2));
两个数组内容如上,如何把$a和$b合并成为一个新的二维数组,要求新数组内容如下:

1
Array(0 => Array(id => 66,class_name => www.iiwnet.com,class_count=> 8),1 => Array(id => 67,class_name => linux ,class_count => 2));
这个题目一定有人遇到过 正好今天群里有人问 就给出2种解法
以下代码由 PHP教程网 原创提供
01
方法一:
02
 
03
    function arrpreg(){
04
        $a=Array(0 => Array(id => 66,class_name => www.iiwnet.com),1 => Array(id => 67,class_name => linux ));
05
        $b=Array(0 => Array(class_count=> 8),1 => Array(class_count => 2));
06
        $arr = array();
07
        foreach ($a as $k => $r) {
08
            foreach($r as $k1 => $r1){
09
                $arr[$k][$k1] = $r1;
10
            }
11
        }  
12
        foreach ($b as $k => $r) {
13
            foreach($r as $k1 => $r1){
14
                $arr[$k][$k1] = $r1;
15
            }
16
        }
17
        return $arr;
18
    }
19
    $ar= arrpreg();  
20
    echo '<pre>';
21
     print_r($ar);
22
    echo '</pre>';
23
    ?>
24
 
25
方法二:
26
 
27
    $a = array(0 => Array(id => 66,class_name => www.iiwnet.com),1 => Array(id => 67,class_name => linux ));
28
    $b = array(0 => Array(class_count=> 8),1 => Array(class_count => 2));
29
    $arr = array();
30
    foreach($a as $k=>$r){
31
        $arr[] = array_merge($r,$b[$k]);
32
    }
33
    echo '<pre>';
34
    print_r($arr);
35
    echo '</pre>';

转自http://www.2cto.com/kf/201210/159324.html

PHP二维数组合并,根据某个key合并

最终解决方案:

  1. /**
  2. *
  3. * @param type $v 要传入的组合阵列
  4. * @param type $keyname 对应的KEY名称。
  5. * @param type $valname 要写入的值KEY名称
  6. * @param type $s 重组译的阵例。预设空值。
  7. */
  8. function test($v,$keyname,$valname,$s=Array())
  9. {
  10. foreach($v AS $_k => $d)
  11. {
  12. $s[$d[$keyname]][$valname]= $d[$valname];
  13. }
  14. return $s;
  15. }
  16. $key ='server_id';
  17. foreach($arr1 as $k=>$v){
  18. $arr[$v['server_id']]= $v;
  19. }
  20. $data = test($arr2,$key,'arr2',$arr);
  21. $data = test($arr3,$key,'arr3',$data);

转自http://www.dewen.org/q/7551

 
 

php二位数组合并的更多相关文章

  1. C++ 出现bug :二位数组的操作运算,求非对角线的元素的和

    编写一个通用程序,求出二位数组(行数和列数必须相等)的非对角线的元素之和,试建立类MATRIX完成上述功能 #include<iostream> using namespace std; ...

  2. PHP二维数组合并,根据某个key合并

    /** *PHP二维数组合并,根据某个key合并 * @param type $v 要传入的组合阵列 * @param type $keyname 对应的KEY名称. * @param type $v ...

  3. PHP 之二位数组根据某个字段排序封装

    /** * @param $array * @param $keys * @param string $sort * @return array */ function arraySort($arra ...

  4. java中Arrays.sort()对二位数组进行排序

    int [][]a = new int [5][2]; //定义一个二维数组,其中所包含的一维数组具有两个元素 对于一个已定义的二位数组a经行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升 ...

  5. 【shell】构造并遍历二位数组的一种用法

    参考shell数组的部分操作用法,实现了构造和遍历二维数组的一种方式,具体如下: #数组元素以空格分割 sites=("www.a.com www.b.com www.c.com www.d ...

  6. PHP把2个二维数组合并一个二维数组

    $a = array(0 => Array(id => 66,class_name => www.iiwnet.com),1 => Array(id => 67,clas ...

  7. shell二位数组——终端字符下降动画

    猜想:Shell支持关联数组,可以利用关联数组模拟二维数组. [验证猜想] #!/bin/bash array[1,1]=1 array[2,1]=2 array[3,1]=3 for i in `s ...

  8. vector创建二位数组

    默认初始化vector vector<vevtor<int> > arr(row, vector<int>(col, 0)); //指定行大小为row,列为col, ...

  9. Rotate Image(二位数组顺时针旋转)

    问题描述: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockw ...

随机推荐

  1. Java开源数据库管理工具

    SQuirreL SQL Client   SQuirreL SQL Client 是一个用 Java 编写的程序,它允许您查看数据库的内容.发出 SQL 命令,以及如您将看到的,执行许多其他功能.构 ...

  2. Hello world,Hello 2014,Bye 2013

    序 想要写点什么的时候发现不知道写什么了,用一句话来总结2013的话,就是2013是既熟悉又陌生的一年,熟悉是同样的开发工作,陌生是从河南到北京的环境改变,当时大学的卧谈会,谈论毕业了要做什么,想要在 ...

  3. Android Activity模拟dialog

    Android项目中很多地方,都会弹出一个弹出框.类似于自己定义的alertDialog,比如微信的退出提示,但由于Dialog的限制,可能不能很完美的实现你的想要的功能,所有研究发现他们这种实现其实 ...

  4. 我常用的delphi 第三方控件

    转载:http://www.cnblogs.com/xalion/archive/2012/01/09/2317246.html 有网友问我常用的控件及功能.我先大概整理一下,以后会在文章里面碰到时再 ...

  5. Java常用排序算法+程序员必须掌握的8大排序算法

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

  6. Hessian原理分析

    一.      远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, ...

  7. 中石油—2的幂次方(power)

    问题 E: 2的幂次方(power) 时间限制: 1 Sec  内存限制: 64 MB提交: 38  解决: 19[提交][状态][讨论版] 题目描述 任何一个正整数都可以用2的幂次方表示.例如:13 ...

  8. POJ 2549 Sumsets hash值及下标

    题目大意:找到几何中的4个数字使他们能够组成 a+b+c=d , 得到最大的d值 我们很容易想到a+b = d-c 那么将所有a+b的值存入hash表中,然后查找能否在表中找到这样的d-c的值即可 因 ...

  9. DP:Making the Grade(POJ 3666)

     聪明的修路方案 题目大意:就是农夫要修一条路,现在要求这条路要么就是上升的,要么就是下降的,总代价为∑|a[i]-b[i]|,求代价最低的修路方案, (0 ≤ β≤ 1,000,000,000) , ...

  10. Gym 100801E Easy Arithmetic (思维题)

    题目:传送门.(需要下载PDF) 题意:给定一个长度不超过1000的字符串表达式,向该表达式中加入'+'或'-',使得表达式的值最大,输出该表达式. 题解:比如300-456就改成300-4+56,遇 ...