Объединить строки двух 2D-массивов на основе значения общего столбца и применить значения по умолчанию там, где ожидаемыPhp

Кемеровские программисты php общаются здесь
Anonymous
Объединить строки двух 2D-массивов на основе значения общего столбца и применить значения по умолчанию там, где ожидаемы

Сообщение Anonymous »

У меня есть два массива, которые необходимо объединить в столбце dt_date, и мне нужно объявить подписчиков и отписавшихся во всех строках результата.

Код: Выделить всё

$array1 = [
['subscribers' => 2, 'dt_date' => '2014-02-27'],
['subscribers' => 2, 'dt_date' => '2014-02-25'],
['subscribers' => 1, 'dt_date' => '2014-02-07']
];
$array2 = [
['unsubscribers' => 1, 'dt_date' => '2014-02-27'],
['unsubscribers' => 1, 'dt_date' => '2014-02-01']
];
Мне нужно создать из двух массивов массив, подобный следующему.

Код: Выделить всё

[
['subscribers' => 2, 'unsubscribers' => 1, 'dt_date' => '2014-02-27'],
['subscribers' => 2, 'unsubscribers' => 0, 'dt_date' => '2014-02-25'],
['subscribers' => 1, 'unsubscribers' => 0, 'dt_date' => '2014-02-07'],
['subscribers' => 0, 'unsubscribers' => 1, 'dt_date' => '2014-02-01']
]
Я пробовал

Код: Выделить всё

$result = array_merge_recursive($aray1, $array2);
И

Код: Выделить всё

$result = array_merge(
$array1,
array_udiff(
$array2,
$array1,
function($array1,$array2){
return strcmp($array1['dt_date'],$array2['dt_date']);
}
)
);
Но результат оказался не таким, как ожидалось

Подробнее здесь: https://stackoverflow.com/questions/220 ... -default-v

Вернуться в «Php»