Приближение нескольких категорий и вариантов в PHP

Я просто хотел внести свой вклад в то, какое лучшее решение - эффективный был бы для проблемы, которая будет приведена ниже.

Например, скажем, у меня 6 разных категорий. В пределах этих категорий у вас есть от 5 до 6 вариантов. На основе того, что вы выбираете в каждой категории, создается другой результат. Не могли бы вы решить это, выполнив много логики, массивов или какого-нибудь другого метода?

Мои мысли заключались в том, чтобы делать инструкции switch или логику. Это лучший способ?

1
nl ja de
Это будет зависеть. Можете ли вы сделать только один выбор из всех категорий или вы можете сделать один выбор из каждой категории?
добавлено автор Aust, источник
Я предлагаю создать алгоритм big if/elseif .
добавлено автор Aborted, источник
Не о чем я могу думать. Возможно, профи этого веб-сайта имеют лучшие мысли, чем мои.
добавлено автор Aborted, источник
Это будет один выбор из каждой категории.
добавлено автор wowzuzz, источник
Это были мои мысли Дуги, но мне было интересно, возможно ли, возможно, лучший способ.
добавлено автор wowzuzz, источник

1 ответы

Если вы сделали макет, например:

switch($cat1){
  case 1:
    switch($cat2){
      case 1:
        ...
        break;
    }
    break;
  case 2:
    ...
    break;
}

или это:

if($cat1 == 1){
  if($cat2 == 1){
    ...
  }elseif($cat2 == 2){
    ...
  }
}elseif($cat1 == 2){
  ...
}

вам понадобится более 100 000 строк кода для логики в любом случае. Хлоп. Но если у вас есть 6 категорий, каждая из которых имеет 6 вариантов, это дает вам всего 46 656 различных комбинаций. 6 ^ 6. Если ваш сайт подключен к базе данных, вы можете сделать что-то подобное, чтобы помочь вам.

$layout = $cat1 . $cat2 . $cat3 . $cat4 . $cat5 . $cat6;
//making $layout 315632 or whatever based on what they select.

И в вашей базе данных вы можете создать таблицу, в которой идентификатор совпадает с $ layout, и вы сохраняете отображаемую информацию в строках в базе данных.

 -------------------------------------
|   id   | name | make | year | model |
|--------|------|------|------|-------|
| 111111 | Aero |  S2  | 2011 | M-110 |
| 111112 | .... | .... | .... | ..... |
| 111113 | .... | .... | .... | ..... |
 -------------------------------------

Затем используйте простой поиск строк, чтобы получить ваши результаты в php. Конечно, потребуется довольно много времени, чтобы поместить всю вашу информацию в базу данных, но для создания логики в php-файле потребуется какое-то время. Это было бы самым быстрым способом, когда пользователь фактически использует ваш сайт, и это облегчит вам отладку.

Если вы не можете этого сделать, следующая самая быстрая ставка (если вы можете держать все в порядке) состоит в том, чтобы иметь 6 вложенных операторов if/elseif. Большинство проверок это даст вам 36, но это может быть меньше в зависимости от того, что пользователь выбирает. Ключ коммутатора также будет работать, но они немного грязнее, чем оператор if/elseif.

1
добавлено
Спасибо за продуманный ответ Aust.
добавлено автор wowzuzz, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp