Нужно осуществить поиск по строке формата:
$string = "Lorem ipsum dolor sit amet";
Человек вводит в поиск "sit ipsum amet". Можно ли проверить строку на наличие этих символов в строке, не в прямом порядке ?
В php есть стандартные методы для поиска по строке, например stristr()
, но он сработает, только если в точном порядке дать ему данные, а мне нужно просто что-то, что найдёт совпадение в строке и запросе.
Как это можно реализовать?
Попробуй вот этот код. В основ используеться array_intersect()
$string = "Lorem ipsum dolor sit amet";
$haystack = "sit ipsum amet";
$stringInArray = explode(' ', $string);
$haystackInArray = explode(' ', $haystack);
if(count(array_intersect($haystackInArray, $stringInArray)) == count($haystackInArray)) {
// Слова из строки найдены
}
Основная идея - разбиваем обе строки (целевую и искомую)на слова. А затем циклом пробегаем по массиву искомых слов и ищем каждое слово в массиве целевых слов
function mixed_search($haystack, $needle) {
$haystack_words = explode(' ', $haystack);
$needle_words = explode(' ', $needle);
foreach ($needle_words as $word) {
if (array_search($word, $haystack_words) === false)
return false;
}
return true;
}
$string = "Lorem ipsum dolor sit amet";
$search = "sit ipsum amet";
echo mixed_search($string, $search);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Привет, у меня есть php, который мне json'ом возвращает несколько значений:
Соединил XAMPP, yii и postgreSQLСоздал элементарную бд, схему, 1 таблицу, в таблице 3 столбца: id_point (key,integer, это наш айдишник), title(text), point_xy(point)