За последние 24 часа нас посетили 55404 программиста и 1793 робота. Сейчас ищут 752 программиста ...

Расщепление переменной

Тема в разделе "PHP для новичков", создана пользователем -Vladimir-, 6 янв 2011.

  1. -Vladimir-

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

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Переменную можно расщепить по разделителю:
    Код (Text):
    1.  
    2. $peremennaya="1.3.4.777";
    3. list($a, $b, $c, $d) = explode('.' , $peremennaya);
    А как сделать, чтобы расщепить переменную без разделителей, а по номеру знака от её начала?

    То есть, вместо 1.3.4.777 будет 134777. А разделено должно быть на 1, 3, 4, 777 (последнее число или текст могут быть любой длины).
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    $peremennaya[0],
    $peremennaya[1]


    strtr($peremennaya, array("." => ''));

    $data = explode('.' , $peremennaya);
    $data[0],
    $data[1]
     
  3. brainiac

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

    С нами с:
    5 янв 2011
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Новосибирск
    PHP:
    1.  
    2.     $str='12345555666';
    3.     $n=3; //Кол-во делений
    4.     for ($i=0; $i<=$n; $i++)
    5.         {
    6.         $len = ($i==$n) ? strlen($str)-$i : 1;
    7.         $array[i]=substr($str,$i,$len);
    8.         echo $array[i].'<br />'; //Выводим полученные части
    9.         }
    10.     list($var1,$var2,$var3,$var4)=$array;
    11.  
    Может быть...
     
  4. -Vladimir-

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

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    echo $array.'<br />'; - это работает
    list($var1,$var2,$var3,$var4)=$array; - а здесь не видит массив.
     
  5. Jampire

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

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    Этот номер известен заранее?
    Количество первых чисел всегда рвно трем?
     
  6. -Vladimir-

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

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Да, известен.
    Первая цифра - переменная 1,
    вторая цифра - переменная 2,
    третья цифра - переменная 3,
    всё остальное, что дальше - переменная 4.

    Да, цифры однозначные.
     
  7. brainiac

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

    С нами с:
    5 янв 2011
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Новосибирск


    Проверил...и правда не работает, забыл написать global $array; , но кстати и это не работает...господа знающие, отпишите в чём тут соль. Извините.[/php]
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Всё работает, просто на строках 6 и 7 пропущен знак $:
    вместо $array надо написать $array[$i]
     
  9. Jampire

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

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    PHP:
    1. <?php
    2.  
    3. $str = "134777";
    4. $str = preg_replace('/(\d)/', "\\1,", $str, 3);
    5. list($var1, $var2, $var3, $var4) = explode(",", $str);
    6.  
    7. ?>