PHP-объединение двух массивов в один массив (также удаление дубликатов)
Привет я пытаюсь объединить два массива, а также хочу удалить повторяющиеся значения из окончательного массива.
вот мой массив 1:
Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07
)
и это мой массив 2:
Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07
)
Я использую array_merge
для слияния двух массивов в один массив. это дает выход, как это
Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07
[1] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07
)
Я хочу удалить эти повторяющиеся записи или я могу удалить их перед слиянием... Мольбы о помощи.. Спасибо!!!!!!!
5 ответов:
Как уже упоминалось, array_unique () может использоваться, но только при работе с простыми данными. Объекты не так просты в обращении.
когда PHP пытается объединить массивы, он пытается сравнить значения элементов массива. Если элемент является объектом, он не может получить его значение и вместо этого использует хэш spl. подробнее о spl_object_hash читайте здесь.
просто сказали, если у вас есть два объекта, экземпляры одного и того же класса, и если один один из них не является ссылкой на другой - вы получите два объекта, независимо от значения их свойств.
чтобы убедиться, что у вас нет дубликатов в объединенном массиве, Imho вы должны справиться с этим делом самостоятельно.
кроме того, если вы собираетесь объединять многомерные массивы, рассмотрите возможность использования array_merge_recursive () over array_merge ().
Он объединит два массива и удалит дубликат
<?php $first = 'your first array'; $second = 'your second array'; $result = array_merge($first,$second); print_r($result); $result1= array_unique($result); print_r($result1); ?>
попробуйте эту ссылку link1