通过共享行定位的两个2D数组之间的数据合并数据

问题描述 投票:0回答:4
here是数组#1

[ ['first' => 'LightSpeed', 'last' => 'Administrator'], ['first' => 'Tyler', 'last' => 'Nichol'] ]
here是数组#2

[ 'I-10' => ['user' => 2, 'total' => 46.64], 'I-11' => ['user' => 2, 'total' => -46.64] ]
我只想在第一个数组中添加[Total] => $值,所以看起来像。

[ ['first' => 'LightSpeed', 'last' => 'Administrator', 'total' => 46.64], ['first' => 'Tyler', 'last' => 'Nichol', 'total' => -46.64] ]

我很确定我需要
array_push()
,但是我不确定如何循环。

这有点低,但是我只是循环浏览您的数组并插入总项目。假设您只是与阵列中项目位置的第二个数组匹配:

php arrays multidimensional-array merge mapping
4个回答
0
投票

您的阵列格式不佳,所以我在答案中做到了这一点。您可能想更新您的问题
<?php
$arr1 = Array
(
     Array
        (
            'first' => 'LightSpeed',
            'last' => 'Administrator'
        ),

     Array
        (
            'first' => 'Tyler',
            'last' => 'Nichol'
        )
);

$arr2 = Array
(
    'I-10' => Array
        (
            'user' => 2,
            'total' => 46.64
        ),

    'I-11' => Array
        (
            'user' => 2,
            'total' => -46.64
        )
);


$n = count($arr1);
$i = 0;
foreach($arr2 as $arr)
{
   $arr1[$i]['total'] = $arr['total'];
   $i++;
}

var_dump($arr1);
?>

0
投票

var_dump



array 0 => array 'first' => string 'LightSpeed' (length=10) 'last' => string 'Administrator' (length=13) 'total' => float 46.64 1 => array 'first' => string 'Tyler' (length=5) 'last' => string 'Nichol' (length=6) 'total' => float -46.64

    

您不必一直循环。

array_merge

0
投票
输出

function superMerge($a, $b) {
    $a['total'] = $b['total'];
    return $a;
}

$array1 = array(0 => Array("first" => "LightSpeed","last" => "Administrator"),1 => Array("first" => "Tyler","last" => "Nichol"));
$array2 = array("I-10" => Array("user" => 2,"total" => 46.64),"I-11" => Array("user" => 2,"total" => - 46.64));

var_dump(array_map("superMerge", $array1, $array2));

                

array 0 => array 'first' => string 'LightSpeed' (length=10) 'last' => string 'Administrator' (length=13) 'total' => float 46.64 1 => array 'first' => string 'Tyler' (length=5) 'last' => string 'Nichol' (length=6) 'total' => float -46.64

是一个方便的选择,因为当给出多个输入数组时,返回索引的数组。 由于您正在处理关联行值,因此可以使用数组联合操作员(
array_map()
)合并所需的元素。 demo

0
投票

+

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.