манипуляции со строками от A-B ...- X-Y до Y-A-B -...- X - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть строка в этом формате:

Каждая подстрока отделяется '-'

А-В-С ...- X-Y

У меня вопрос, как переместить последнюю подстроку в первую как

Y-А-В-С ...- Х

в php

Большое спасибо.

Ответы [ 3 ]

5 голосов
/ 17 сентября 2011

Вот код, который сделает это:

// Split the string into an array
$letters = explode('-', 'A-B-C-X-Y');

// Pop off the last letter
$last_letter = array_pop($letters);

// Concatenate and rejoin the letters
$result = $last_letter . '-' . implode('-', $letters);
2 голосов
/ 17 сентября 2011

Прохладный путь малыша

Разделите строку с помощью explode, переместите последний элемент полученного массива вперед и склейте его еще раз:

$parts = explode('-', $str);
$last = array_pop($parts);
array_unshift($parts, $last);
$result = implode('-', $parts);

Старая школа (тоже быстрее)

Найдите последнее вхождение разделителя с помощью strrpos, отрежьте подстроку и добавьте перед ней:

$pos = strrpos($str, '-');
$result = substr($str, $pos + 1).'-'.substr($str, 0, $pos);

См. Оба в действии .

0 голосов
/ 17 сентября 2011

Для некоторого безумия в пятницу вечером.

$last = substr($str, strrpos($str, '-'));
$str = strrev($last) . str_replace($last, '', $str);

Отказ от ответственности: код предполагает, что разделитель всегда существует.В противном случае результат $str обратный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...