php二位数组合并

转自: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

时间: 2024-08-29 15:28:29

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

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

编写一个通用程序,求出二位数组(行数和列数必须相等)的非对角线的元素之和,试建立类MATRIX完成上述功能 #include<iostream> using namespace std; class MATRIX { public: void mATRIX(); void MATRIX_sum(); void MATRIX_display(); static int fact_len;//定义静态变量 private: int sum; int a[40][40]; }; int MATRIX

在控制台输入字母然后在控制台打印相应的二位数组字母,要求一行打印

1 package MyHomeWork; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Scanner; 6 7 /** 8 * Created by zhouyubin on 7/11/14. 9 */ 10 public class Test2 { 11 private static final char[][] print_a={{' ',' ',' ','A',' ',' ',' ','

二位数组环状最大子矩阵

由于上次二位数组,使用了函数,所以这次只要修改函数就可以了. //Powered by lzr! #include<iostream> using namespace std; int yiwei_max(int n,int a[]) { int temp=0,sum=-999999999; int j=0,k=0,i; for(i=0;i<n;i++) { if(temp>0) { temp+=a[i]; } else { temp=a[i]; if(a[i]>0 &

二位数组中的查找——杨氏矩阵

------------------------------------------------------------------------------------------------- "杨氏矩阵":即数组元素从左向右依次递增,从上到下依次递增.要想在该数组中查找数,首 先该数组得满足"杨氏矩阵"的特点.为了方便理解我们可以将一个二位数组看作是一个矩阵,假设i 为行,j为列,数组为str,那么只要满足(str[i][j]<str[i][j+1] &a

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

/** *PHP二维数组合并,根据某个key合并 * @param type $v 要传入的组合阵列 * @param type $keyname 对应的KEY名称. * @param type $valname 要写入的值KEY名称 * @param type $s 重组译的阵例.预设空值. */ function test($v,$keyname,$valname,$s=Array()){ foreach($v AS $_k => $d){ $s[$d[$keyname]][$valname

二位数组传参及二位数组动态分配问题

//二位数组参数传递 //1. void display1(int arr[][4], const int rows) { for (int i = 0; i < rows; i++) { for (int j = 0; j < 4; j++) { cout << arr[i][j] << ' '; } cout << endl; } cout << endl; } //2. void display2(int(*parr)[4], const

将一个二维数组合并成一个一维数组

大家都知道php有内置的数组合并函数array_merage($arr,$arr1,$arr2,$arr3);那如何把一个二维数组如array(array('a'=>1,'b'=>2),array('c'=>3,'d'=>4)) 合并成如下的数组 array('a'=>1,'b'=>2,'c'=>3,'d'=>4);似乎,php目前还没有这样的内置函数吧,于是自己动手写了两种方法,仅供大家参考 第一种.方法当然是递归法呢,代码如下 <?php $new

二位数组

一.题目及要求: 返回一个整数数组中最大子数组的和 输入一个二维整形数组,数组里有正数也有负数:二维数组首尾相接,像一条首尾相接的带子一样. 二.设计思路: 调用循环一维数组求最大子数组的函数,将二维数组列的情况全部列出,即转化为一维数组. 三.源代码 #include<iostream.h> int max2(int arry[],int length) //跨越arry[n-1].arry[0]的最大和 { int total=0; int sum=arry[0]; int minsum=

二位数组升级版

一.题目及要求: 返回一个整数数组中最大子数组的和 输入一个二维整形数组,数组里有正数也有负数:二维数组首尾相接,像一条首尾相接的带子一样. 二.设计思路: 这个题目其实与上次毫无区别,仍然调用循环一维数组求最大子数组的函数,将二维数组列的情况全 部列出,即转化为一维数组.a[0][0],a[0][0]a[0][1].........在调用函数即可. 三.源代码 #include<iostream.h> int max2(int arry[],int length) //跨越arry[n-1]