PHP多维数组合并基于键

时间:2016-12-16 18:11:50

标签: php arrays multidimensional-array array-merge

我有这两个阵列:

$array1 = [
  '1' => 285.52,
  '2' => 427.76
];

$array2 = [
  '1' => 123.44,
  '2' => 48.32
];

每个人的钥匙都是客户的身份证,第一个是欠款,第二个是付款金额,我希望达到以下目的:

$mergedArrays = [
   '1' => [
     'owed'  => 285.52,
     'payed' => 123.44
   ],
   '2' => [
     'owed'  => 427.76,
     'payed' => 48.32
   ]
];

我想知道是否有PHP函数这样做,我尝试使用array_merge_recursive,但它只是将四个元素组合在一起。

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:1)

你可以循环第一个数组并根据键

合并第二个数组
foreach($array1 as $key => $val) {
    $mergedArrays[$key] = array('owed' => $val, 'payed' => $array2[$key]);
}

sample

答案 1 :(得分:1)

$array1 = [
  '1' => 285.52,
  '2' => 427.76
];

$array2 = [
  '1' => 123.44,
  '2' => 48.32
];

$final_arr = array_map(function($a1, $a2) {
    return array(
        'owed' => $a1,
        'paid' => $a2
    );
}, $array1, $array2);

$final_arr = array_combine(array_keys($array1), $final_arr);

var_dump($final_arr);

根据评论,您似乎正在寻找内置的PHP函数来为您完成任务,而不是寻求传统的循环。但是 Fabio 提供的循环方法是最简单的方法,没有任何其他复杂的方法。我已尽力使用核心PHP函数为您提供解决方案。希望你对此感到高兴!

相关问题