Как удалить окончание слова

Гость | 15 марта 2017, 15:55 | 1

Есть фраза. Как мне удалить из её слов окончания?
Допустим, фраза: «большое яблоко». На выходе нужно иметь: «больш яблок». Это пригодилось бы для поиска внутри сайта


PHP

Решения

Как вариант, можно воспользоваться substr и strlen

$text = 'Большое яблоко';
$postfixes = array('о', 'ое'); // Массив окончаний через запятую // Можно получить из списка с помощью explode https://php.net/explode

foreach ( $postfixes as $postfix ) {
	$postfix_len = strlen( $postfix ); // Длина окончания
	$text_len = strlen( $text ); // Длина фразы
	$x = $text_len - $postfix_len; // Корень слова  (слово без окончания)

	if ( substr( $text, $x, $postfix_len ) == $postfix ) { // Если окончание фразы совпадает  с одним из предустановленных окончаний
		$text = substr( $text, 0, $x ); // - вырезаем его
	}
}

print( $text );
exit;