简体   繁体   English

如何合并两个数组?

[英]How to merge two arrays?

After loop made and using following array I can create a new array. 经过循环并使用以下数组,我可以创建一个新数组。

$data[$val['gid']][$val['rid']][$val['aid']][$teno][$userid]= array();

This results in the array below: 结果是下面的数组:

array:1 [
  "FS OTHER" => array:1 [
    "FS OTHER" => array:1 [
      "FS OTHER" => array:1 [
        "FS OTHER" => array:1 [
          "D111" => []
        ]
      ]
    ]
  ]
]

I also have another array: 我也有另一个数组:

array:41 [
  0 => array:2 [
    "sid" => "D111"
    "desc1" => "BANGKOK"
  ]
  1 => array:2 [
    "sid" => "D111"
    "desc1" => "NONTHABURI"
  ]
  2 => array:2 [
    "sid" => "D112"
    "desc1" => "PATHUM THANI"
  ]

Now I need to merge this array based on the 'sid' to get the following result: 现在,我需要基于'sid'合并此数组以获得以下结果:

array:1 [
  "FS OTHER" => array:1 [
    "FS OTHER" => array:1 [
      "FS OTHER" => array:1 [
        "FS OTHER" => array:1 [
          "BANGKOK" => []
          "NONTHABURI"=> []
        ]
      ]
    ]
  ]
]

You can prepare another structure of the second array 您可以准备第二个数组的另一个结构

$new = [];
foreach ($arr2 as $x) {
    $new[$x['sid']][$x['desc1']] = [];
}
// [D111 => [ BANGKOK => [], NONTHABURI => [] ],..

and then just create the 1st one by: 然后只需通过以下方式创建第一个:

$data[$val['gid']][$val['rid']][$val['aid']][$teno][$userid]= $new[$userid];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM