Изменить порядок полной строки - PullRequest
1 голос
/ 22 апреля 2020

Как я могу изменить полное имя строки? Я использую Laravel и должен ли я сделать это, используя " explode "? Не могли бы вы помочь мне в достижении ситуации ниже?

Пример:

Carlos Marinz Dutra

Для:

DUTRA, Carlos Marinz

Ответы [ 3 ]

1 голос
/ 22 апреля 2020

Используйте explode, чтобы преобразовать в массив, array_pop, чтобы получить последний элемент массива (удаление в процессе), mb_strtoupper, чтобы использовать для заглавных букв даже специальные символы, такие как é õ õ á, и взорвать, чтобы снова склеить с пробелом:

$name1 = 'Carlos Marinz Dutra';
$name2 = 'Joao da Silva';

$name1 = explode(' ', $name1);
echo mb_strtoupper(array_pop($name1)).', '.implode(' ', $name1);

$name2 = explode(' ', $name2);
echo mb_strtoupper(array_pop($name2)).', '.implode(' ', $name2);

Вывод:

DUTRA, Carlos Marinz
SILVA, Joao da
0 голосов
/ 23 апреля 2020

Есть много способов добиться этого.

Предполагая, что вы хотите удалить последнюю строку и перенести ее на весь верхний регистр, за которым следует ,, это другой способ без использования массива или обычного функции выражения.

$str = 'Carlos Marinz Dutra';

$lw = strrpos($str, ' ') + 1;
$mod = strrpos($str, ' ');
echo strtoupper(substr($str, $lw)).', '.substr($str, 0, $mod);

Вывод:

DUTRA, Carlos Marinz
0 голосов
/ 22 апреля 2020

Просто используйте это

$string = 'Carlos Marinz Dutra'; 
$pattern = '/(\w+) (\w+) (\w+)/i'; 
$replacement = strtoupper('$3').', $1 $2'; 
echo preg_replace($pattern, $replacement, $string);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...