Как получить первые слова в предложении после запятой на php?
Исходный текст: Раз два, три четыре пять, два восемь, один
Нужно получить: Раз, три, два, один
Подскажите пожалуйста готовое решение. Спасибо!
Ответы (3 шт):
Автор решения: Igor R.
→ Ссылка
$result = '';
$string = 'Раз два, три четыре пять, два восемь, один';
$strings = explode(',', $string);
foreach($strings as $key => $string) {
$words = explode(' ',trim($string));
$word = $words[0];
$result .= $word;
if ($key + 1 < count($strings)) {
$result .= ', ';
}
}
В $result будет Раз, три, два, один.
Автор решения: UKRman
→ Ссылка
<?php
$string = 'Раз два, три четыре пять, два восемь, один';
echo implode(', ', array_map(fn ($word) => strtok($word, ' '), explode(', ', $string)));
Автор решения: Bolverkr Eldjarnson
→ Ссылка
Возможно я просто привык решать такие проблемы регулярками, но...
$string = 'Раз два, три четыре пять, два восемь, один';
if (preg_match_all('~(,|^)\\s*(?<word>\\w+)~u', $string, $matches)) {
var_dump($matches['word']);
}
Результат:
array(4) {
[0]=>
string(6) "Раз"
[1]=>
string(6) "три"
[2]=>
string(6) "два"
[3]=>
string(8) "один"
}
Поковырять и потыкать регулярку с подробным разбором: https://regex101.com/r/dbfgOr/1