Есть ряд синонимов, которые заменяются на нужные словоформы:
<?php
$sostav_result = "камень";
$sostav_result = "бурый камень дробленый";
$sostav_result = mb_strtolower($sostav_result);
//Словарь
$sostav_result = preg_replace('/\bкамень\b/u', "камень бурый", $sostav_result);
$sostav_result = preg_replace('/\bбурый камень дробленый\b/u', "камень бурый", $sostav_result);
echo $sostav_result;
Ожидаемый результат: камень бурый
Получаемый результат: бурый камень бурый дробленый
Логические ошибки понятны. Но не понятно пока, как решить задачу: не менять отдельные слова из фразы.
Живой пример: http://sandbox.onlinephpfunctions.com/code/799bccffaee5e4a367eea7fa0cd9f693eed7d9ca
Поменяйте местами порядок замены синонимов. Сначала, более частные случаи замены "бурый камень дробленый" меняете на тэг1, привязанный к первому случаю, потом уже более общие "" меняете на тэг2, привязанный ко второму случаю (если они попадутся). Потом меняете теги на необходимые слова-замены.
Есть изображения одного размера вpng Как можно по средствам PHP реализовать размещение этих изображений на нескольких A4?
Есть гео данные вcsv файле и надо их расположить на точках карты (лучше openstreet) и потом , чтоб люди , введя нужную точку могли ее найти