Вопрос № 104271: Всем привет, подскажите, как оставить в одномерном массиве только уникальные значения, не заполняя нулями повторяющиеся, а именно исключить их из массива со сдвигом индексов?
Спасибо......
Вопрос № 104.271
Всем привет, подскажите, как оставить в одномерном массиве только уникальные значения, не заполняя нулями повторяющиеся, а именно исключить их из массива со сдвигом индексов?
Спасибо...
Отправлен: 04.10.2007, 13:03
Вопрос задал: Stals (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PVS
Здравствуйте, Stals!
Сделайте их индексом массива, тоесть вместо
$a[]=$value;
пишите
$a[$value]=0;
А потом можете сделать из них массив
$uniq=array_keys($a);
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 04.10.2007, 13:10
Отвечает: Селев Валерий
Здравствуйте, Stals!
Используте функцию array_unique:
Приложение:
Ответ отправил: Селев Валерий (статус: 6-ой класс)
Ответ отправлен: 04.10.2007, 13:10
Отвечает: K0rvin
Здравствуйте, Stals!
Для этого в php удобно использовать функцию array_unique. Она создаст из текущего массива новый, состоящий только из уникальных значений. Ключи при этом сохраняются:
Ответ отправил: Powoditch konstantin (статус: 6-ой класс)
Ответ отправлен: 04.10.2007, 13:57
Отвечает: GINes
Здравствуйте, Stals!
Как вариант, могу предложить следующее решение (пример в приложении), без использования встроенных функций. Вот алгоритм: массив A - исходный, B - получаемый после исключения дубликатов. Просматриваем каждый элемент массива A, если такой уже есть в B, то переходим к следующему, иначе заносим в новый массив B, когда проверим все существующие элементы массива B.
Приложение:
Ответ отправил: GINes (статус: 6-ой класс)
Ответ отправлен: 04.10.2007, 21:59