| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Удаление повторов из строки |
| Автор: PROme 18.11.2005, 18:45 |
| даже не знаю, может регами как-то можно? в общем задача: удалить из строки повторы слов, идущих продляд, т.е. строку вида: слово1 слово2 слово3 слово3 слово1 слово1 слово2 слово3 нужно привести к виду слово1 слово2 слово3 слово1 слово2 слово3 - чтобы небыло повторос среди соседних слов первое, что приходит на ум - разбиваем строку на слова и сравниваем поочередно соседние, если следующее слово = текущему, значит удаляем его, если нет, передвигаемся на слово впиред и так до конца строки а поизящнее способа нет |
| Автор: Mal Hack 18.11.2005, 21:53 | ||
Попробуй так:
|
| Автор: PROme 20.11.2005, 16:04 |
| Mal Hack немного не так понял сами слова нам неизвестны |
| Автор: Mal Hack 20.11.2005, 16:10 |
| Разделяешь слова по пробелам, делаешь array_unique, затем join через | и подставляешь на место "слово2" |
| Автор: PROme 20.11.2005, 19:07 |
| Mal Hack ну спасибо тока по-моему, это далеко не более простой и легкий для машины способ если будут еще идеи, пишите, пока поюзаю простенький свой... |
| Автор: Mal Hack 20.11.2005, 20:48 | ||
|
| Автор: PROme 21.11.2005, 21:31 | ||||
| ага, пасибки с реализацией какраз тут проблем не возникает, а вот алгоритм, ну ладно, не буду заморачиваться, и так сойдет кстати, если кто будет юзать, лучше так:
иначе
обработается не до конца я же нигде не писал, что слов подряд может быть только два ;) |
| Автор: -=Ustas=- 22.11.2005, 10:37 |
| А почему бы не заюзать array_unique() ? |
| Автор: -=Ustas=- 22.11.2005, 10:47 | ||
По-моему лучше так уже:
|
| Автор: Mal Hack 22.11.2005, 10:53 |
| -=Ustas=- надо не все повторы удалить, а только те, которые идут подряд. |
| Автор: -=Ustas=- 22.11.2005, 12:13 | ||
|