繁体   English   中英

将元素从第一个数组添加到第二个数组

[英]Adding elements from first array to second array

我有2个阵列

第一个数组

Array ( [2019-04-29] => Array ( [0] => 366 [1] => 82 [2] => 44 ) [2019-04-30] => Array ( [0] => 330 [1] => 115 [2] => 55 ) ) 

第二个数组

Array ( [0] => 492 [1] => 500 ) 

需要将这些数组与这样的输出合并。

Array ( [0] => Array ( [0] => 492 [1] => 366 [2] => 82 [3] => 44 ) [1] => Array ( [0] => 500 [1] => 330 [2] => 115 [3] => 55 ) ) 

请帮忙。

您可以使用array_walkarray_merge

$arr1 = Array ( 
        '2019-04-29' => Array (
                 '0' => 366, 
                 '1' => 82, 
                 '2' => 44 
        ) ,
        '2019-04-30' => Array ( 
                '0' => 330,
                '1' => 115, 
                '2' => 55 
        )
);
$arr2 = Array ( '0' => 492 ,'1' => 500 ) ;
$index = 0;
$res=[];
array_walk($arr1, function($v,$k) use (&$res,$arr2,&$index){
  $res[] = array_merge(array($arr2[$index]),$v);
  $index++;
});  
echo '<pre>';
print_r($res);

结果

Array
(
[0] => Array
    (
        [0] => 492
        [1] => 366
        [2] => 82
        [3] => 44
    )

[1] => Array
    (
        [0] => 500
        [1] => 330
        [2] => 115
        [3] => 55
    )

)

在使用array_values$array1重新索引为以0开头的数字索引之后,可以使用foreach循环和array_merge进行此操作。

$array1 = array_values($array1);
foreach ($array2 as $k => &$v) {
    $v = array_merge(array($v), $array1[$k]);
}
print_r($array2);

输出:

Array 
(
[0] => Array
    (
        [0] => 492
        [1] => 366
        [2] => 82
        [3] => 44
    )

[1] => Array
    (
        [0] => 500
        [1] => 330
        [2] => 115
        [3] => 55
    )
)

3v4l.org上的演示

您可以将array_walkarray_merge与传统的增量器结合使用

array_walk($arr1, function (&$item, $key) use ($arr2,&$i) { // $i should change at memory address
    $item = array_merge($item, [$arr2[$i]]);
    $i++;
});

输出量

Array
(
    [2019-04-29] => Array
        (
            [0] => 366
            [1] => 82
            [2] => 44
            [3] => 492
        )

    [2019-04-30] => Array
        (
            [0] => 330
            [1] => 115
            [2] => 55
            [3] => 500
        )

)

演示

暂无
暂无

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

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