Метку регулярных поставил, но моё решение, к сожаление без них (а скорей всего именно они помогут).
Есть строка, в которой надо взять первое слово и к нему присоединить другую часть строки, если такая часть имеется.
Я сделал коряво (да и не работает, как надо):
$ar = ["11g", "12g", "13g", "44r", "11g-gtr", "12g-gr"]; // массив возможных совпадений
$str = "Начало *** 2158** 11g-gtr 174"; // входящая строка
$res = explode(" ", $str); // первое слово
foreach ( $ar as $val ) { // перебираем все возможные совпадения
$sub = strripos($str, ' '.$val);
if ($sub != false) {
$res[0] .= $val; // Если нашли, то объединяем с первым словом [ Начало11g ]
break;
}
}
У меня в результате найдя
11g его и подставляет, хотя в строке
11g-gtr. Можно было бы конечно указать в
strripos, чтоб искалось совпадение с пробелами до и по после, тогда всё получится, но искомая фраза может быть и в конце строки. Да и вообще наверно так не решается подобная задача?
Каким образом можно разрешить проблему?
Благодарю.