2016-12-16 5 views
0

у меня есть это два массива:PHP многомерный массив Объединить на основе ключей

$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, но это только делает массив из четырех элементов вместе.

Любая помощь была бы действительно оценена.

+1

В чем проблема при традиционном цикле? –

+1

Ничего не встроено без вложенности/объединения нескольких встроенных функций, таких как [array_column] (http://php.net/array_column) с [array_combine] (http://php.net/array_combine) и тому подобное. –

+0

@HillaryClintonEmailRemover Я не знаю, я думал, что это было более эффективная производительность, чтобы сделать это, используя встроенные функции, спасибо tho – DSB

ответ

1

вы можете цикл в первом массиве и слить второй по клавишам

foreach($array1 as $key => $val) { 
    $mergedArrays[$key] = array('owed' => $val, 'payed' => $array2[$key]); 
} 

sample

+0

он сказал, что не традиционный –

+0

Нет ничего традиционного, как встроенная функция для этого – Fabio

+0

exectly, что я думал, что я не знаю почему он хочет использовать некоторые сложные вещи для выполнения простых задач. –

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. Надеюсь, вы довольны этим!