За последние 24 часа нас посетили 17845 программистов и 1716 роботов. Сейчас ищут 933 программиста ...

Перебор значения переменной

Тема в разделе "PHP для новичков", создана пользователем Yankovitz, 29 июн 2017.

  1. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Добрый день
    есть переменные:
    PHP:
    1. $one_sfera = $num + 1;
    2. $two_sfera = $num + 2;
    3. $three_sfera = $num + 3;
    И условие:
    Код (Text):
    1. if ( $one_sfera = 1 ) {
    2.       echo 'Строительство';
    3. } else if (  $one_sfera = 2 ) {
    4.       echo 'Семья';
    5. }
    6. // и так далее до 20 пунктов
    Как сделать компактно вывод текста для всех переменных в зависимости от значения переменной?
    Спасибо.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    switch
     
    Fell-x27 нравится это.
  3. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    PHP:
    1. $array = [ 'Строительство',  'Семья',  ];
    2.  
    3. if (isset($array[$num])) {
    4.      echo $array[$num];
    5. }
     
    Yankovitz нравится это.
  4. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    а такой вариант как вам?
    PHP:
    1. echo $one_sfera == 1 ? 'Строительство' : false;
    2. echo $one_sfera == 2 ? 'Семья' : false;
    3. // и т.д.
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    у тебя массив с начальным ключем 0, а у ТС с единицы начинается
    --- Добавлено ---
    найн
     
  6. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    А может всё-таки с нуля? Посмотри внимательно.

    Вариант Emilien самый правильный, хотя и не законченный.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    у ТС:
    PHP:
    1. if ( $one_sfera = 1 ) {
    2.       echo 'Строительство';
    3. } else if (  $one_sfera = 2 ) {
    4.       echo 'Семья';
    5. }
    --- Добавлено ---
    в чем не законченный ?
     
  8. valentinnew

    valentinnew Активный пользователь

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    В чем проблема начать с единицы?
    Более того, эти 1 и 2 можно и даже нужно вывести в константы
    PHP:
    1. $array = [
    2.     1 => 'Строительство',
    3.     2 =>  'Семья',
    4. ];
    5. if (isset($array[$num])) {
    6.      echo $array[$num];
    7. }
     
  9. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    почему?
     
  10. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Опробировал. Самый первый вариант - лучший.
     
  11. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    MouseZver, ещё раз - посмотри внимательно. Напряги одну извилину и поймёшь, почему "0" это правильно (в том алгоритме).

    >> в чем не законченный ?
    По хорошему надо выдавать или исключение, если номера не может быть в принципе (т.е. ошибка разраба), или сообщение юзеру, если это его ошибка.
    --- Добавлено ---
    Это какой? switch?
     
  12. valentinnew

    valentinnew Активный пользователь

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    @Chushkin а можешь мне объяснить, почему почему "0"? А то я солидарен с @MouseZver
     
  13. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
     
  14. valentinnew

    valentinnew Активный пользователь

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    ничего нового я не увидел
     
  15. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    приеду домой, по лбу ложкой настучу кое кому про алгоритм
     
  16. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Код (Text):
    1. if ( $one_sfera = 1 )
    В круглых скобках для сравнения должно быть 2 знака равно, один знак равно это присваивание.
     
  17. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    В том это в каком ?
    - ТС просит помочь.
    - Обсуждаем / улучшаем вариантами алгоритм ТСа.
    - Тема ведется про алгоритм принесенный ТСом.
    Так о каком ТОМ алгоритме еще можно вести диалог ?
    ---------------------------
    У ТСа:
    Единица int ( 1 ) должно вывести Строительство
    Если int ( 2 ) то Семья

    -------------------
    У @Emilien начинается с ключа 0 по дефолту, у ТС строительство должно выводить при ЕДИНИЦЕ


    Кхм, так что я должен понять ? o_O
     
  18. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Ребята, ну вы даёте! san4ez же всё показал.
    Вам посчитать или сами посчитаете?
     
  19. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    да хоть -100 в num еще раз - Строительство при 1, Семья при 2
     
  20. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    У нас что, магнитные бури бушуют?

    Формула из школьного обучения (не помню какой класс): $one_sfera = $num + 1 --> $num = $one_sfera - 1.
    Значения сам подставишь или посчитать?
     
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    на условие смотри , прозрей наконец
     
  22. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Бесполезно...
    Ну и ладно, кто понял - хорошо, кто нет - значит не судьба.