Фильтрация элементов массива с n-элементов по заданному критерию с реверсированием порядка

137
27 мая 2019, 02:20

Предположим, у нас есть строка "Алала1234.Марк!Михаил?Елена..."

Нам нужно:

1) преобразовать в массив, разбить массив на строки, так, чтобы знаки препинания, в т.ч. неодносимвольные типа "?!" или "..." являлись разделителями

2) поменять разделители местами, чтобы вышло "Алала1234...Марк?Михаил!Елена."

Answer 1

Разбиваете строку по шаблону на массив слов и символов по отдельности. Массив символов "переворачиваете", и в цикле собираете новую результирующую строку:

$str = 'Алала1234.Марк!Михаил?Елена...';
$marks = array_reverse(preg_split('~[^[:punct:]]+~', $str, -1, 1));
$result = '';
foreach (preg_split('~[[:punct:]]+~', $str, -1, 1) as $k => $word) {
    $result .= $word . ($marks[$k] ?? '');
}
echo $result;

Результат: Алала1234...Марк?Михаил!Елена.

READ ALSO
VK api отправка документа (gif) на стену группы

VK api отправка документа (gif) на стену группы

Нужна помощь, есть скрипт отправки фото на стену группы, как сделать отправку документа?

141
php обращение по ключу

php обращение по ключу

Помогите пожалуйста мне нужно обращаться к array по ключу, попытался смудрить такой код но он не срабатывает(

124
Почему не работает file_get_contents()?

Почему не работает file_get_contents()?

Мне нужно авторизованному пользователю показывать 5 его друзей, для этого написал такой код:

130
Плавная прокрутка блоков новостей,

Плавная прокрутка блоков новостей,

нужно сделать плавное прокручивание новостей вправо, 3 новости в ряд

104