我有两个阵列(可能更多),他们可能有散射数据。

Date    | Apple                       Date    | Banana
-----------------                    -------------------
   1      |   5                         1     |   3
   4      |   5                         3     |   1
   5      |   5                         7     |   2

数组结构如下所示。
array
(
   [0] => array
   (
      [date] => 4
      [apple] => 5
   )
   [1] => array
   (
       [date] => 5
       [apple] => 5
   )
)

我需要的是有一个整合的阵列,同时包含这两个细节。示例如下所示。
Date      Apple      Banana
-------------------------------
 1          5          3
 3          0          1
 4          5          0
 5          5          0
 7          0          2

考虑到数组可以保存多个值,我们如何才能做到最好?任何暗示都能帮我解决这个问题。或者请指出我正确的链接,如果它已经讨论过。我在搜查中什么也找不到。
提前谢谢。

最佳答案

我想到的最好的办法是:

for($i=0; $i<5; $i++){
        $t = $i;
        $t1 = $t+3;
        $te= $i+5;
        $ti = $i+10;
        $a[] = array(
            'date' => $t,
            'bannana' => $te,
            'tea' => $ti,
        );

        $b[] = array(
            'date' => $t1,
            'lemon' => $te,
        );

        $ar1[]=$a;
        $ar2[]=$b;
    }



    foreach($a as $key=>$value){
        foreach($value as $k=>$v){
            $ar[$value['date']][$k]=$v;
        }
    }

    foreach($b as $key=>$value){
        foreach($value as $k=>$v){
            $ar[$value['date']][$k]=$v;
        }
    }

    echo var_dump($ar);

其中$a和$b是两个数组,它们的排序依据是“date”。我查看了堆栈溢出,但无法完全为这个确切的情况得到另一个解决方案。
这个函数生成以下var_dump():
array(8) {
     [0]=> array(3) {
          ["date"]=> int(0)
          ["bannana"]=> int(5)
          ["tea"]=> int(10)
     }
     [1]=> array(3) {
          ["date"]=> int(1)
          ["bannana"]=> int(6)
          ["tea"]=> int(11)
     }
     [2]=> array(3) {
          ["date"]=> int(2)
          ["bannana"]=> int(7)
          ["tea"]=> int(12)
     }
     [3]=> array(4) {
          ["date"]=> int(3)
          ["bannana"]=> int(8)
          ["tea"]=> int(13)
          ["lemon"]=> int(5)
     }
     [4]=> array(4) {
          ["date"]=> int(4)
          ["bannana"]=> int(9)
          ["tea"]=> int(14)
          ["lemon"]=> int(6)
     }
     [5]=> array(2) {
          ["date"]=> int(5)
          ["lemon"]=> int(7)
     }
     [6]=> array(2) {
          ["date"]=> int(6)
          ["lemon"]=> int(8)
     }
     [7]=> array(2) {
          ["date"]=> int(7)
          ["lemon"]=> int(9)
     }
}

关于php - 从多个阵列创建主阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17728595/

10-13 02:39