Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Удаление дублей из многомерных масивов.
мне нужно что бы удались все элементы из массива с одинаковым значением uid и остался только последний элемент. Погуглив и почитав некоторые статейки решил написать вот так:
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
MAXUS пишет:
У вас массив видоизменяется. Ключи рушатся.
Они и должны. Ведь идёт удаление дублей. Кроме того, ничего не сказано, что ключи не должны быть не по порядку. А если это так нужно - применить array_values() к результату.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
MAXUS
Отправлено: 26 Февраля, 2014 - 16:22:02
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
EuGen пишет:
MAXUS пишет:
У вас массив видоизменяется. Ключи рушатся.
Они и должны. Ведь идёт удаление дублей. Кроме того, ничего не сказано, что ключи не должны быть не по порядку. А если это так нужно - применить array_values() к результату.
На оставшихся элементах ключи видоизменяются. Становятся равны uid.
Добавление
И, потом, если в исходном массиве содержатся указатели, то они при таком подходе тоже порушатся. Если не содержатся, то замена массива не критична.
Результат выполнения вашего кода. Обратите внимание на ключи, выделенные жирным.
А помимо прочего, у нас с вами один и тот же косяк Элементы, у которых нет uid считаются дублями и остается только один из них. Я подправил этот момент.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
MAXUS пишет:
Обратите внимание на ключи, выделенные жирным.
Да сколько же можно.
EuGen пишет:
применить array_values() к результату.
То, что элементы без ключей считаются одинаковыми - собственно, прямое следствие поставленной задачи. И по-другому их интерпретировать считаю некорректным.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.