![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| djundead |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 7.4.2006 Репутация: нет Всего: нет |
Доброго времени суток!
Есть примерно следующая конструкция:
Дело в том что ключей около 20 штук и собственно if'ов тоже столько же( попытался перенести это дело на switch, но не смог найти решения при использовании in_array // поиска ключа в массиве. Покажите в какую сторону двигаться для нахождения решения (если это конечно возможно =) ) Заранее спасибо! Это сообщение отредактировал(а) djundead - 23.3.2007, 23:38 |
|||
|
||||
| Serkys |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
Лучше сделай через foreach().
Если надо выполнять разные действия, то switch($key) вставляешь внутрь if(). Хотя хотелось бы задачу подробнее. |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 19 |
Опиши задачу подробнее.
Вообще достаточно странно, что данная конструкция работает, если под значением "ключX" понимается именно ключ ассоциативного массива, а не значение, которое требуется найти. -------------------- ...все в мире относительно |
|||
|
||||
| djundead |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 7.4.2006 Репутация: нет Всего: нет |
массив формируется из запроса к бд с применением explode:
в итоге ищу по массиву значение:
Задача присвоить юзеру определенные метки в зависимости от выбранных им предпочтений
Нет) Значение, просто немного стормозил =( И еще вопрос, есть ли смысл переходить на switch? На сколько и главное чем полезнее использовать switch? |
||||||||
|
|||||||||
| Serkys |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
Код красивее Мне кажется switch полезен когда выбор идёт опираясь на само значение переменной, без всяких его преобразований. Можете меня пиннать, но я не вижу ничего некрасивого во ифах. Свич очень узкоспециализированный, чтобы его подстроить под себя почти всегда надо прилагать слишком много усилий. |
|||
|
||||
| szz |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1289 Регистрация: 31.5.2005 Где: Moscow, Jerusalem Репутация: 8 Всего: 33 |
Нету! Что тебе вообще свитч тут взъелся? Он подходит если ты откровенно сравниваешь переменную с разными значениями. 20 раз писать эту хрень тоже нет смысла, когда у тебя очевидно циклично можно пройти. разумеется тут нужен foreach, как подсказал Serkys. Вот тот же цикл, но с действием. После него результтат абсолютно такой же как и с 20-ю ифами:
Не, ну это неправда тоже. Довольно часто приходится сравнивать переменную с чем-то. Если сравнений больше двух, то не задумываясь используешь свитч. --------------------
|
||||||||
|
|||||||||
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: 1 Всего: 2 |
если уж так хочется поюзать switch,то
--------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
| Serkys |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
Я к тому, что на практике я очень редко сталкиваюсь с применением свитча. Редко бывает необходимость. Не знаю как у других, но у меня так. |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
По-моему, тут вообще можно заюзать array_intersect($массив_для_сравнения, $массив_из_базы) и потом смело фигачить все элементы из результата в эти самые предпочтения многострадального юзера, обойдясь без каких-либо проверок внутри цикла.
А вот это имхо, говорит о слегка неправильном проектировании БД (нормализация хромает)... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |