简体   繁体   English

PHP-将循环数组合并为一个

[英]PHP - Merge looped arrays into one

I have two result set from database first one is : 我有两个来自数据库的结果集,第一个是:

Array(
    [0] => Array([vehicle] => BUS NO.1 )
    [1] => Array([vehicle] => BUS NO.2)}

second one is : 第二个是:

Array([0] => Array(
            [trip_name] => Trip00011
            [running_km] => 5000)
      [1] => Array(
            [trip_name] => Trip00021
            [running_km] => 2400))

I want to merge these arrays like following array: 我想像下面的数组一样合并这些数组:

Array([0] => Array(
            [vehicle] => BUS NO.1
            [trip_name] => Trip00011
            [running_km] => 5000 )
        [1] => Array(
            [vehicle] => BUS NO.2
            [trip_name] => Trip00011
            [running_km] => 5000)
        [2] => Array(
            [vehicle] => BUS NO.1
            [trip_name] => Trip00021
            [running_km] => 2400 )
        [3] => Array(
            [vehicle] => BUS NO.2
            [trip_name] => Trip00021
            [running_km] => 2400))

Actually, this is my question.Could you please help me to do this 其实这是我的问题,请您帮我做一下

Given these following arrays 给定以下数组

$array1=Array(
            0 => Array('vehicle' => 'BUS NO.1' ),
            1 => Array('vehicle' => 'BUS NO.2')
        );

$array2=Array(
            0 => Array(
                'trip_name' => 'Trip00011',
                'running_km' => 5000),
            1 => Array(
                'trip_name' => 'Trip00021',
                'running_km' => 2400)
        );

You can obtain the expected output using either the simplest way 您可以使用最简单的方法获得预期的输出

foreach($array2 as $val){
        foreach($array1 as  $v){
             $result[]=$v+$val;
        }
    }

or the complex(maybe the worst) way: 或复杂的(也许是最坏的)方式:

!($result=[])?array_map(function($a) use ($array1,&$result){ $result=array_merge($result,array_map(function($val)use($a){ return $val+$a;},$array1));},$array2):[];

ouput: 输出继电器:

array(4) {
  [0]=>
  array(3) {
    ["vehicle"]=>
    string(8) "BUS NO.1"
    ["trip_name"]=>
    string(9) "Trip00011"
    ["running_km"]=>
    int(5000)
  }
  [1]=>
  array(3) {
    ["vehicle"]=>
    string(8) "BUS NO.2"
    ["trip_name"]=>
    string(9) "Trip00011"
    ["running_km"]=>
    int(5000)
  }
  [2]=>
  array(3) {
    ["vehicle"]=>
    string(8) "BUS NO.1"
    ["trip_name"]=>
    string(9) "Trip00021"
    ["running_km"]=>
    int(2400)
  }
  [3]=>
  array(3) {
    ["vehicle"]=>
    string(8) "BUS NO.2"
    ["trip_name"]=>
    string(9) "Trip00021"
    ["running_km"]=>
    int(2400)
  }
}

you can use array_merge. 您可以使用array_merge。 array_merge(array1, array2)

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

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