-
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
1729933766
Anonymous
У меня есть два массива, которые необходимо объединить в столбце dt_date, и мне нужно объявить подписчиков и отписавшихся во всех строках результата.
[code]$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']
];
[/code]
Мне нужно создать из двух массивов массив, подобный следующему.
[code][
['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']
]
[/code]
Я пробовал
[code]$result = array_merge_recursive($aray1, $array2);
[/code]
И
[code]$result = array_merge(
$array1,
array_udiff(
$array2,
$array1,
function($array1,$array2){
return strcmp($array1['dt_date'],$array2['dt_date']);
}
)
);
[/code]
Но результат оказался не таким, как ожидалось
Подробнее здесь: [url]https://stackoverflow.com/questions/22066102/merge-rows-of-two-2d-arrays-based-on-the-shared-column-value-and-apply-default-v[/url]