Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 785
от 09.10.2007, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 450, Экспертов: 51
В номере:Вопросов: 1, Ответов: 5


Вопрос № 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. Она создаст из текущего массива новый, состоящий только из уникальных значений. Ключи при этом сохраняются:

$input = array("a" => "green", "red", "b" =>
"green", "blue", "red");
$result = array_unique($input);
// теперь $result===("a"=>"green", "red", "blue");

PS: ключи можно потом нормализовать, просто пройдясь по массиву в цикле и перебросив значения в новый массив.
Ответ отправил: K0rvin (статус: 3-ий класс)
Ответ отправлен: 04.10.2007, 13:11

Отвечает: Powoditch konstantin
Здравствуйте, Stals!
Вам поможет ф-я array_unique

http://ua2.php.net/manual/en/function.array-unique.php
Ответ отправил: Powoditch konstantin (статус: 6-ой класс)
Ответ отправлен: 04.10.2007, 13:57

Отвечает: GINes
Здравствуйте, Stals!

Как вариант, могу предложить следующее решение (пример в приложении), без использования встроенных функций. Вот алгоритм: массив A - исходный, B - получаемый после исключения дубликатов. Просматриваем каждый элемент массива A, если такой уже есть в B, то переходим к следующему, иначе заносим в новый массив B, когда проверим все существующие элементы массива B.

Приложение:

Ответ отправил: GINes (статус: 6-ой класс)
Ответ отправлен: 04.10.2007, 21:59


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.10 от 27.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное