Оператор + возвращает левый массив, к которому был

Apr 7, 2013

Оператор + возвращает левый массив, к которому был присоединен правый массив. Для ключей, которые существуют в обоих массивах, будут использованы значения из левого массива, а соответствующие им элементы из правого массива будут проигнорированы.

Т.е. при сложении collection+collection + _relatedObjects (запись именно в таком порядке), если имеются одинаковые ключи и там, и там, то при совпадении ключей выберутся только ключи из $collection. Все остальные ключи из обоих массивов добавятся в результирующий массив.

array_diff_key ( array array1, array array2 [, array ...] ) возвращает массив, содержащий все значения array1, имеющие ключи, не содержащиеся в последующих параметрах. Обратите внимание, что ассоциации сохраняются.

При array_diff_key(relatedObjects,_relatedObjects, collection) мы получили расхождение этих массивов а потом добавляем к нему только что выкинутые ключи (*+ collection),т.о.замениввсеключидубликатыизcollection*), т.о. заменив все ключи-дубликаты из _relatedObjects ключами из $collection.

Результат в обоих случаях одинаков.