![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
Что-то мозги кипят и ни как не могу сообразить как реализовать... попробую объяснить задачу..
есть массив со значениями следующей структуры [string][-][int][-][int][-][string] Пример array('asd_qwe-1-0-qwe', 'qw_we-0-0-fr-ds', 'as_df-2-3-qwe') Строки начинаются с буквы, но могут содержать и цифры и тире Условия такие 1. Точное совпадение если нет в нуля 2. если есть ноль, то в значение может быть любым, по типу * -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
немного не так объяснил наверное..
значения для поиска могут быть такие же как и то что ищут, вернее имеют тот же формат (состоят из 4 блока разделённых 'тире') где ищем -> что ищем 'asd_qwe-1-0-qwe' -> 'asd_qwe-1-0-' 'qw_we-0-0-fr-ds' -> qw_we-0-0-fr-ds' 'as_df-2-3-qwe' -> 'as_df-2-0-qwe' Думаю поиск должен быть регуляркой что-то типа
Это сообщение отредактировал(а) Gold Dragon - 19.6.2012, 07:15 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
а вопрос то в чем?
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
есть таблица с данными, в т.ч. и с тем что искать.
Есть массив в котором есть данные которые уже указывал. Необходимо листать данные полученные из таблицы и проверять одно поле на совпадение его в массиве Идеальным вариантом было бы найти в массиве значение используя регулярку.. Но что-то такой простой функции типа in_array() нет (или я не знаю). Вот нужно придумать что-то своё и чтобы скорость не съедало -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
т.е. поиск в базе? ну так строишь регулярку, соответствующую всем шаблонам из массива используя mysql regexp
|
|||
|
||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
нет же
1. есть массив
2. есть данные из базы. 3. Есть цикл
в котором получаются данные, а так же формируется строка проверки в формате, в котором есть в массиве 4. в цикле необходимо проверять данные из массива и сформированное значение. 5. Пример. - в массиве есть значение "com-qwer-5-0-" - сформировалось - "com-qwer-5-2-asd" 6. значения состоят из 4-х частей всегда, разделённое тире А-Б-В-Г А - латиница, подчёркивание, тире, цифры Б - только цифры В - только цифры Г - латиница, подчёркивание, тире, цифры, может быть пустым 7. Из примера. - В массиве А = com-qwer Б = 5 В = 0 Г = - В сформированном А = com-qwer Б = 5 В = 2 Г = asd Если в массиве в Б или В ноль, то в сформированном значение игнорируется и при сравнении всегда ИСТИНА Если в массиве в Г "", то в сформированном значение игнорируется и при сравнении всегда ИСТИНА В примере значения "равны" вот в этом примере ЛОЖ - в массиве есть значение "com-qwer-5-2-" - сформировалось - "com-qwer-5-0-asd" -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
||||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
да я уже объяснял же(!) ну куда подробнее?? не важно как они формируются, важно что они имеют вот такое значение
Вот регулярка для расклада
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 2 Всего: 137 |
А что если разбить строку через explode и проверить 1 и 2 элементы на равенство нулю?
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
explode не получится, только регуляркой. Тире может быть и в первом и в последнем блоке, кроме разделителей
Добавлено через 57 секунд а накидал один способ, у меня работает. Упростил как мог, но всё равно сложный получился.. сейчас выдерну из скрипта и выложу -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Это жесть Зачем нужна строка, которая не строка, а структура? Для чего себе создавать геморрой? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
Fortop, если нет решения, то философия мне не нужна(!) без обид. Возьми любой серийный номер любой техники - это строка, которая и есть зашифрованная структура.
Я имею набор таких "серийников" и у меня есть с чем их сравнивать. Так вот мне нужно или каждое значение из "справочника" приводить в структуру и сравнивать или структуру привести в строку и сравнить.. Второй вариант намного энергоёмкостнее -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Это не философия. Философия у вас в постановке задачи. Сравнить жопу с пальцем наиболее эффективным способом - это не задача. И решения нет по той причине, что нет проблемы. Какая конечная цель? Найти серийник? Или найти ряд серийников? Если ряд серийников, то по каким критериям? По маске? Какие правила формирования маски? Вам задали вполне правильный вопрос Потому что это влияет на то, как решать задачу. Добавлено через 5 минут и 8 секунд Кстати, с чем все же сравниваются серийники? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Gold Dragon |
|
||||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
А прочитать то что я уже написал выше не судьба? Или там так очень кратко написано? особенно тут? http://forum.vingrad.ru/index.php?showtopi...t&p=2498560 Что за трёп? только слова и ничего больше, ни вопроса ни ответа, только эмоциональные жаргонизмы. Читай лучше мои пояснения. если не понятно задавай вопросы. Уже несколько раз сказал и про маску и про то какие данные, и с примерами, и с чем сравнивать Добавлено через 9 минут и 39 секунд вот рабочий код. Код выдернут из движка. Упростил как смог сам метод
Значение $arr
Значение $selected
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |