Имам проблем с обединяването на масиви по конкретен сценарий. Търсенето на подобни случаи не даде резултат тук. За да разберете ясно какви са изискванията ми, моля, вижте следващия пример:
Първи масив:
Array
(
[0] => stdClass
(
[call_date] => 2013-10-22 00:00:00
[first_amount] => 10
)
[1] => stdClass
(
[call_date] => 2013-10-23 00:00:00
[first_amount] => 20
)
)
Втори масив:
Array
(
[0] => stdClass
(
[call_date] => 2013-10-22 00:00:00
[second_amount] => 30
)
[1] => stdClass
(
[call_date] => 2013-10-24 00:00:00
[second_amount] => 40
)
)
Какво ми трябва на изхода:
Array
(
[0] => stdClass
(
[call_date] => 2013-10-22 00:00:00
[first_amount] => 10
[second_amount] => 30
)
[1] => stdClass
(
[call_date] => 2013-10-23 00:00:00
[first_amount] => 20
)
[2] => stdClass
(
[call_date] => 2013-10-24 00:00:00
[second_amount] => 40
)
)
Както можете да видите, обединяването става по call_date. Елементите от първия и втория масив, които са под дата 2013-10-22 00:00:00, бяха комбинирани, елементът от втория масив под дата 2013-10-24 00:00:00 беше добавен.
Опитах много комбинации от array_merge, array_udiff, array_merge_recursive, array_map, но нищо не помогна :(.
Ще съм благодарен за решаването на този проблем!
foreach
, използвайкиcall_date
като ключ на нов масив, ако даден елемент не съществува, добавете, ако съществува, добавете колоната*_amount
(или просто$newarray[$item->call_date] = (object)array_merge(get_object_vars($newarray[$item->call_date]),get_object_vars($item));
(Говорите за сливане на обект тук. - person Wrikken   schedule 29.10.2013foreach($array1 as $item){..}foreach($array2 as $item){..}
и т.н.) - person Wrikken   schedule 29.10.2013