За последние 24 часа нас посетили 53110 программистов и 1765 роботов. Сейчас ищут 1299 программистов ...

Вывод SUBSTRING_INDEX

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

  1. gko11

    gko11 Новичок

    С нами с:
    1 апр 2017
    Сообщения:
    44
    Симпатии:
    0
    В базе mysql имеется запись 230 ,250 , 110 , 150 , 125, 154
    Выводя по запросу я получаю запись в переменную...
    Мне нужно чтобы каждое число записывалось в отдельную переменную...
    Сутки мучаюсь, думая как реализовать...
    Сори если не в тот форум.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    лучше используй массивы https://secure.php.net/manual/ru/language.types.array.php
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    А как вы собираетесь определять имена этим переменным, тем более, если количество чисел в строке может быть разным? И почему бы это не делать на PHP? Например, как-нибудь так:
    PHP:
    1. <?php
    2. $str = '230 ,250 , 110';
    3.  
    4. extract(preg_split('/[\s,]/', $str, -1, PREG_SPLIT_NO_EMPTY), EXTR_PREFIX_ALL, 'num');
    5. echo $num_0; // 230
    6. echo $num_1; // 250
    7. // ... и т.д.
    8.  
    9. // или
    10. list($num_1, $num_2, $num_3) = preg_split('/[\s,]/', $str, -1, PREG_SPLIT_NO_EMPTY);
    Хотя, все эти варианты под большим вопросом, т.к.опять упираемся в вопрос количества.
     
  4. gko11

    gko11 Новичок

    С нами с:
    1 апр 2017
    Сообщения:
    44
    Симпатии:
    0
    Нет количество установленное, всего 6 значений разделённых 5 запятыми
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3. $str = '230 ,250 , 110';
    4.  
    5. foreach ( array_map ( function ( $INT ) { return (int)$INT; }, explode ( ',', $str ) ) AS $K => $V )
    6. {
    7.     ${"num_{$K}"} = $V;
    8. }
    9.  
    10. unset ( $K, $V, $str );
    11.  
    12. echo $num_0;
     
    gko11 нравится это.
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Тогда вариант с list() вполне приемлем
     
    gko11 нравится это.
  7. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Да,только я думаю что вместо регулярки в данном случае лучше воспользоваться explode:
    PHP:
    1. list($num1,$num2,$num3,$num4,$num5,$num6,) = explode(',',$str);
     
    gko11 нравится это.
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    будут цифры с пробелами присутствовать в переменных
     
  9. gko11

    gko11 Новичок

    С нами с:
    1 апр 2017
    Сообщения:
    44
    Симпатии:
    0
    Спасибо, помог, тему можно закрывать)