Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск значения в массиве 
V
    Опции темы
Fortop
Дата 20.6.2012, 14:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Gold Dragon @  20.6.2012,  14:09 Найти цитируемый пост)
А прочитать то что я уже написал выше не судьба? Или там так очень кратко написано? особенно тут?

Там каша.

По сути вашего описания в массиве находятся маски.
И вы хотите найти подходящие под них значения в БД.

Вам вполне конкретно ответили
Цитата(baldina @  19.6.2012,  10:40 Найти цитируемый пост)
т.е. поиск в базе? ну так строишь регулярку, соответствующую всем шаблонам из массива используя mysql regexp 

А это ваш ответ
Цитата(Gold Dragon @  19.6.2012,  10:57 Найти цитируемый пост)
нет же


Что-то еще нужно прочитать?
Или вам нужно таки понять, что же вы делаете?

Если в массиве не маски, то что?
Плюс в этом случае остается актуальным вопрос
Цитата(baldina @  19.6.2012,  13:17 Найти цитируемый пост)
по какому правилу сформировалось?



И дальше будете продолжать играть в шпиона? Или озвучите внятно стоящую задачу? Без ваших додумываний о том, что лежит в базе и с чем его надо сравнивать....

Добавлено через 1 минуту и 25 секунд
Цитата(Gold Dragon @  20.6.2012,  14:09 Найти цитируемый пост)
Значение $selected

Ну таки структура, которую вы зачем-то приводите к строке.
Зачем?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Gold Dragon
Дата 20.6.2012, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Fortop, всё понятно, читать и понимать просто лень... бывает.. тогда так

То что ты называешь масками тоже являются значениями, например, "com_boss-6-6-" означает
1. com_boss - применимо для компонента com_boss и это значение должно содержаться в ($_GET или $_POST) в option
2. 6 - распространяется если компонент com_boss и категория с ID=6
3. 6 - распространяется если компонент com_boss, категория с ID=6 и каталог ID=6
4. '' - означает что привязка к разделам каталога не осуществляется

Эти значения являются своеобразными идентификаторами URL, так же используются в VALUE в <FORM>, ну и ещё кое где

Этот список более-менее постоянный и достаточно большой

Далее с чем сравнивать или что сравнивать. В данном случае это как настроен определённый отображаемый объект на сайте. Например, если у нас в третьей части стоит ноль, то это означает что нам доступны данные не только из каталога ID=6, а из всей категории. Если там что-то иное чем ноль, то тогда уже реагируем на значение

ps
хотя я уже не знаю как объяснить.. смотри код, может так поймёшь. Код рабочий и мои требования выполняет

Добавлено через 45 секунд
Цитата(Fortop @  20.6.2012,  15:35 Найти цитируемый пост)
Ну таки структура, которую вы зачем-то приводите к строке.
Зачем? 
не понял предложения


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Fortop
Дата 20.6.2012, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Acl знакомо?

Можно посмотреть Zend_Acl
phpgacl

Вот туда и копать.


А сравнивать в этом(вашем) случае лучше не строки, а таки структуры по уровням иерархий.

Это сообщение отредактировал(а) Fortop - 20.6.2012, 14:58


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Gold Dragon
Дата 20.6.2012, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



вот у нас есть функции которые ищут в строке строку по регулярным правилам. А мне нужно чтобы точно так же, но только поиск в массиве... Вот собственно к чему вся эта тема

Цитата(Fortop @  20.6.2012,  15:56 Найти цитируемый пост)
Можно посмотреть Zend_Acl
phpgacl
а это вообще зачем?



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Fortop
Дата 20.6.2012, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Gold Dragon @  20.6.2012,  15:09 Найти цитируемый пост)
 А мне нужно чтобы точно так же, но только поиск в массиве...

Код

array_walk($array, function($item) use (&matches) {
// тут ищем.
});



Цитата(Gold Dragon @  20.6.2012,  15:09 Найти цитируемый пост)
а это вообще зачем?

http://en.wikipedia.org/wiki/Access_control_list

А ноги растут отсюда.
Цитата(Gold Dragon @  20.6.2012,  14:48 Найти цитируемый пост)
Например, если у нас в третьей части стоит ноль, то это означает что нам доступны данные не только из каталога ID=6, а из всей категории. Если там что-то иное чем ноль, то тогда уже реагируем на значение


Т.е. вам нужно определить доступен ли элемент иерархии.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
baldina
Дата 20.6.2012, 16:10 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(Gold Dragon @  20.6.2012,  14:48 Найти цитируемый пост)
Fortop, всё понятно, читать и понимать просто лень... бывает.. тогда так

я читал внимательно и непониманием не страдаю. однако прекратил анализ Вашей задачи лишь потому что Вы её толком не сформулировали, а догадываться на основе ваших обмолвок и многакода желания и времени нет.
Цитата(Gold Dragon @  20.6.2012,  15:09 Найти цитируемый пост)
 А мне нужно чтобы точно так же, но только поиск в массиве...

если вопрос только в этом (хотя полагаю такая формулировка не полна или даже неверна), то постройте одно регулярное выражение из всех элементов массива, части которого разделены предикатом "|" (или). это соответствует Вашим словам, но слишком просто что бы быть правдой

PM MAIL   Вверх
Gold Dragon
Дата 20.6.2012, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Fortop, к сожалению я лучше знаю русский чем английский.

baldina, что не понятно в этом ответе?
 http://forum.vingrad.ru/index.php?showtopi...t&p=2498560


Цитата(baldina @  20.6.2012,  17:10 Найти цитируемый пост)
если вопрос только в этом (хотя полагаю такая формулировка не полна или даже неверна), то постройте одно регулярное выражение из всех элементов массива, части которого разделены предикатом "|" (или). это соответствует Вашим словам, но слишком просто что бы быть правдой
именно да. это просто на словах. реализация получилась такая, которую я показал. Задачи изначально стояла именно искать в массиве строку из другого массива при помощи регулярки... Конечно цель основная другая, но мне нужно именно этот кусок.

Тему можно закрыть. Реализацию я сделал, может не оптимальную, но работает. Со временем поправлю. Просто очень много времени потратил на перебранки, за что прошу прощение если кого обидел ненароком ;) Ответ получился простой: строку в строке регуляркой искать можно, в массиве нет, для поиска в массиве нужно изобретать что-то иное..



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Evghenusi
Дата 20.6.2012, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 2
Всего: 15



почитал, офигел.

может?
Код

#^([\w-]+)-(\d+)-([^0])-([\w-]+)$#
или
#^([\w-]+)-(\d+)-(0)-([\w-]+)$#

хотя наверно мимо, но всё равно оставлю сообщение, авось...

PM WWW   Вверх
Gold Dragon
Дата 20.6.2012, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Evghenusi, вопрос то не в регулярке... Нужно найти значение из одного массива в другом при помощи регулярки


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
skyboy
Дата 20.6.2012, 22:43 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(Gold Dragon @  20.6.2012,  19:39 Найти цитируемый пост)
 строку в строке регуляркой искать можно, в массиве нет, для поиска в массиве нужно изобретать что-то иное..

array_filter
сначала — БД и массив. потом — два массива. потом — два массива и регулярки.
как только казалось, что начинаю понимать — попадалось новое сообщение, додказывающее обратное.
общий совет: хочешь скорости, уходи от регулярок. раз у тебя строка имеет определенную структуру, то парсь её сразу же и работай уже со структурой, а не с трехэтажными регулярками.
PM MAIL   Вверх
Gold Dragon
Дата 20.6.2012, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



array_filter - видимо это то что я искал smile нужно ещё прикинуть всё.. Но вот от регулярки видимо уйти не получится, данные специфические.. Или придётся вводить в место одной переменной ещё три... хотя как потом их использовать в HTML формах ещё подумать нужно

Добавлено через 2 минуты и 55 секунд
Цитата(skyboy @  20.6.2012,  23:43 Найти цитируемый пост)
как только казалось, что начинаю понимать — попадалось новое сообщение, додказывающее обратное.
да вот пробою пояснить подробно, больше запутываю. в конечно итоге сравниваются те данные которые я привёл в листинге, вывел специально с типами



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Fortop
Дата 21.6.2012, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Gold Dragon @  20.6.2012,  20:39 Найти цитируемый пост)
Fortop, к сожалению я лучше знаю русский чем английский.

Есть на русском http://ru.wikipedia.org/wiki/ACL

Суть в том, как организовать наследование прав доступа и определить доступен ли данный элемент для действий.
Там же попутно решается тот вопрос, который вы разбирали в этой теме.



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Gold Dragon
Дата 21.6.2012, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Fortop, это слишком сложно. Задача намного проще.. и я вроде её уже порешал.. сейчас ещё попробую с array_filter поиздеваться...


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.1124 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.