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 :: Поиск одинаковых значений в строке
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
То, что вы написали - можно сделать меньшим кодом. У вас суть поиска по константе. В первом случаем - это ТЕКСТ, другой - 20. Суть вопроса не в том, что бы найти что-то в строке или массиве, а в том, что бы найти совпадения в строке, которая динамическая и по какому-то регулярному выражению искать не получится (у меня нет идей, как по регулярке это можно реализовать).
Прошу пишите свои идеи, код не так важен, как понять суть реализации этого.
Строитель
Отправлено: 07 Сентября, 2016 - 19:51:01
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
DarkLan пишет:
То, что вы написали - можно сделать меньшим кодом
Возможно, я и не претендую на мистера "Компактный код", пишу как умею на данный момент, и разумеется, пытаюсь самосовершенствоваться
DarkLan пишет:
У вас суть поиска по константе. В первом случаем - это ТЕКСТ, другой - 20.
Абсолютно верно.
DarkLan пишет:
Суть вопроса не в том, что бы найти что-то в строке или массиве, а в том, что бы найти совпадения в строке
Ну, вы ведь в первом посту не так подробно описали суть задачи, поэтому и был предложен такой вариант.
DarkLan пишет:
по какому-то регулярному выражению искать не получится (у меня нет идей, как по регулярке это можно реализовать)
Значит вы плохо разбираетесь в механизме регулярных выражений, т.к. у меня есть идеи их использования в вашей задаче
DarkLan пишет:
Прошу пишите свои идеи, код не так важен, как понять суть реализации этого.
Есть хорошее выражение, процитирую: "Болтовня ничего не стоит - покажите мне код". Я не буду описывать алгоритм решения, вы его и сами прекрасно сможете прочитать из моего кода. В этом его варианте поиск совпадений не привязан к константным значениям
$str='Текст, ещё текст, и ещё текст, и какое-то число, например 7 '.
'10 20 30 40 50 20 100 200';
echo findMatch($str);
/*
Значения Повторы
текст 3
ещё 2
и 2
20 2
*/
dcc0
Отправлено: 07 Сентября, 2016 - 22:22:29
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Как идея:
1 ) Разбить на массив - explode
2 ) array_count_values
3 ) Потом в полученном массиве показать то, что в значнии больше 1
В принципе все.
----- Март 2021. Бросил программирование
Строитель
Отправлено: 07 Сентября, 2016 - 22:54:19
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
dcc0 пишет:
Разбить на массив - explode
В таком случае придётся ещё как-то обрабатывать знаки препинания, т.к подстроки вида "текст," или "текст." (и т.п.) не будут учитываться в сравнении. Именно поэтому я использовал регулярные выражения. Ну а в остальном ваш алгоритм не отличается от моего )
DarkLan
Отправлено: 08 Сентября, 2016 - 01:35:55
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
dcc0
Ни в коем случаем не хотел оскорбить.
Да, регулярные выражения применяю очень редко, бреж знаний в этом месте явно есть.
Ваш вариант испытаю на практике, логика понятна. Спасибо.
Цитата:
Болтовня ничего не стоит - покажите мне код
Суть вопроса в коде. Писать говно-код не очень хорошо, а если идеи нет как это реализовать - тогда только говно-код и получается.
Строитель
Отправлено: 08 Сентября, 2016 - 02:00:14
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
DarkLan пишет:
Ваш вариант испытаю на практике, логика понятна. Спасибо.
При необходимости в шаблон регулярного выражения добавите ещё символов (например, воскл. знак, он ведь может встретиться в тексте). (Добавление)
DarkLan, я не знаю, для каких целей вам было нужно это решение, но когда я продемонстрировал его результат своей жене, она сказала, что этот код ей понадобится при копипасте больших текстов - там как раз нужно проверять часто встречающиеся слова )
Ch_chov
Отправлено: 08 Сентября, 2016 - 06:10:39
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Строитель, не подумайте, что я с пренебрежением отнесся к вашему коду, просто больше обратил внимание на тот комментарий автора, в котором он просит идеи, а не код. (Добавление)
Только печальный момент:
Цитата:
Эта функция считает словами последовательности алфавитных символов
----- Март 2021. Бросил программирование
DarkLan
Отправлено: 08 Сентября, 2016 - 12:10:55
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Строитель
Спасибо за ответ. +. Пойду почитаю о регулярных выражениях... (Добавление) dcc0 и Ch_chov
Вам тоже спасибо! Но в строке входящую в функцию попадают как цифры, так и слова. Возможно правильно будет написать две функции для чисел и слов, но так как это не коммерческий интерес, а научный то меня ответ Строитель полностью устраивает (интерес был в самой логики построения решения).
Строитель
Отправлено: 08 Сентября, 2016 - 18:00:52
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.