| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > унификация массива |
| Автор: -V- 26.3.2005, 19:56 |
| Постановка задачи: Существует массив записей string a[0] = "петя"; a[1] = "маша"; a[2] = "петя"; a[3] = "сырожа"; a[4] = "вова"; ... a[n] = "cdefghjklmnpoq"; как видно некоторые записи в разных елементах совпадают... Вопрос: Как на PHP написать скрипт очистки совпадений в массиве ... т.е. чтобы например запись "петя" не повторялась, а была записана только в первый елемент массива, со здвигом всех остальных елементов. ??? П.С. Если до обработки все данные в массиве равны "петя" то в массиве остаётся одна запись Благодарности Спасибо огромное за помощь |
| Автор: Irokez 26.3.2005, 20:29 |
| array_unique() |
| Автор: -V- 27.3.2005, 00:26 |
| Ты что серьёзно одной функией????? ОТЭТО Я ТУПОЙ!!!! Спасибо! |
| Автор: VoAnt 27.3.2005, 02:52 | ||
| Так, есть проблеммы.. Дело в том что унификация через функцию, не сдвигает массив .. т.е. кол-во елементов остаётся прежним! А НУЖНО ЧТОБ унификация была не только совпадений но и уменьшение размера массива.. Я пытался делать через if .. не рпботает .. посмотрите код в чем ошибка?
|
| Автор: Opik 27.3.2005, 09:16 | ||
|
| Автор: Gold Dragon 27.3.2005, 10:00 | ||
Я не супер в PHP, но может так
|
| Автор: VoAnt 27.3.2005, 11:01 |
| Cупер! Всё работает 2Opr. |
| Автор: IZ@TOP 27.3.2005, 15:52 | ||
А не проще:
|
| Автор: Opik 27.3.2005, 17:10 |
| IZ@TOP чем проще чем у меня? так же 2 функции |
| Автор: Gold Dragon 27.3.2005, 17:24 |
| IZ@TOP а что получается ? |
| Автор: IZ@TOP 27.3.2005, 18:05 |
| Opr, у тебя лишняя переменная задейстована Добавлено @ 18:05 Red Dragon, а что? нет? Добавлено @ 18:07 А вообще, если на то пошло, то лучше при получении данных заносить не как значения, а как ключи. Соответственно так как идентичных ключей не будет, мы получим уникальный набор значений. |
| Автор: IZ@TOP 27.3.2005, 18:17 |
| Да, и вариант с ключами работает в три раза быстрее чем при использовании array_unique. |
| Автор: Irokez 27.3.2005, 18:21 |
| IZ@TOP как проверял? |
| Автор: IZ@TOP 27.3.2005, 18:26 | ||||||
Irokez так:
Добавлено @ 18:28 И если массив увеличить раза в три-четыре, производительность вырастет в пять раз. Добавлено @ 18:29 А если еще поменять это
на это
|
| Автор: Irokez 27.3.2005, 18:38 |
| ну а если поменять оба варианта местами, то первое время будет также меньше второго |
| Автор: Irokez 27.3.2005, 18:59 | ||
кажется ты был прав:
|
| Автор: IZ@TOP 27.3.2005, 19:33 |
| Irokez, а я уже было начал сомневаться |