Как получить первую часть 11349-3868?

Тема в разделе "PHP", создана пользователем Raccoon, 15 авг 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    172
    Симпатии:
    9
    Подскажите, есть данные, которые приходят в формате:
    11349-3868
    Мне нужно обрезать их какой-то функцией PHP и получать только
    11349.

    Как это сделать не подскажите?
    Спасибо.
     
  2. dumber

    dumber

    Регистр.:
    23 апр 2007
    Сообщения:
    272
    Симпатии:
    123
    $dif = strpos($text, "-");
    $Clear = substr($text, 0, $dif);

    этот код выдаст часть до дефиса
    можно еще

    $PartArr = split("-", $text);
    // $PartArr[0] Это 11349
    // $PartArr[1] Это 3868
     
    Raccoon нравится это.
  3. bork1234

    bork1234 Постоялец

    Регистр.:
    25 июн 2008
    Сообщения:
    65
    Симпатии:
    13
    В случае с получение первой части перед делителем наиболее быстрым будет этот способ:
    PHP:
    $s '11349-3868';
    echo (integer) 
    $s;
     
    Raccoon нравится это.
  4. phprus

    phprus Прохожие

    Тогда уж не сплит, а explode, так как сплит интерпретирует разделитель как POSIX-регулярное выражение и работает достаточно медленно.
     
  5. Dicken

    Dicken Создатель

    Регистр.:
    11 авг 2008
    Сообщения:
    10
    Симпатии:
    0
    если есть неизвестное количество, а нужна именно последняя часть?
     
  6. bork1234

    bork1234 Постоялец

    Регистр.:
    25 июн 2008
    Сообщения:
    65
    Симпатии:
    13
    PHP:
    $PartArr explode('-'$text);
    $end_part end($PartArr);
     
  7. Elzor

    Elzor Писатель

    Регистр.:
    27 авг 2008
    Сообщения:
    7
    Симпатии:
    0
    имхо абсолютно верный и лучший метод решения данной задачи
     
Статус темы:
Закрыта.