php foreach найти похожие предметы

В следующем сценарии:

$array = array (
'business', 'businesses', 'business man', 'apple'
);
print '<ul>';
foreach ($array as $row) {
print ' <li class=""> ' . $row . '</li>';
}
print '</ul>';

Я хотел бы иметь возможность найти похожие предметы и назначить класс CSS для него.
В вышеуказанном бизнесе, бизнесе и деловом человеке должны быть схожие предметы.

-1

Решение

Вы могли бы использовать 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 «, игнорируя регистр (строчные или прописные символы обрабатываются одинаково).

0

Другие решения

Я бы использовал что-то вроде:

similar_text()http://php.net/similar_text

или же

levenshtein()http://php.net/levenshtein

Затем переберите все элементы массива и сгруппируйте их по «наименьшему расстоянию Левенштейна» или «наиболее похожему тексту»

0

По вопросам рекламы [email protected]