В следующем сценарии:
$array = array (
'business', 'businesses', 'business man', 'apple'
);
print '<ul>';
foreach ($array as $row) {
print ' <li class=""> ' . $row . '</li>';
}
print '</ul>';
Я хотел бы иметь возможность найти похожие предметы и назначить класс CSS для него.
В вышеуказанном бизнесе, бизнесе и деловом человеке должны быть схожие предметы.
Вы могли бы использовать strpos
проверить, включена ли строка в другую строку:
$array = array(
'business', 'businesses', 'business man', 'apple'
);
print '<ul>';
foreach ($array as $row) {
$className = '';
if (stripos($row, 'business') !== false) {
$className = 'business';
}
print '<li class="'.$className.'">' . $row . '</li>';
}
print '</ul>';
Это добавит класс business
к каждому слову ($row
«) в вашем массиве, который содержит слово» business «, игнорируя регистр (строчные или прописные символы обрабатываются одинаково).
Я бы использовал что-то вроде:
similar_text()
— http://php.net/similar_text
или же
levenshtein()
— http://php.net/levenshtein
Затем переберите все элементы массива и сгруппируйте их по «наименьшему расстоянию Левенштейна» или «наиболее похожему тексту»