Пример:Поиск частичной строки в массиве PHP? Значение поиска содержит хэштегом
$array = array('alpha beta','beta gamma','delta phi', '#alpha phi', 'beta phi');
$searchword = 'alpha';
$results = array_filter($array, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); });
print_r($results);
Array ([0] => alpha beta [3] => #alpha phi)
Я хотел бы найти только элементы, содержащие #alpha
, не alpha
.
В результате я хочу Array ([3] => #alpha phi)
.
Однако, это не работает:
$array = array('alpha beta','beta gamma','delta phi', '#alpha phi', 'beta phi');
$searchword = '#alpha';
$results = array_filter($array, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); });
print_r($results);
Array ()
Я также попытался $searchword = preg_quote('#alpha');
, но это не работает. Я недостаточно знаком с регулярным выражением, чтобы понять это - должно быть какое-то правило регулярных выражений, которое я пропускаю?
Примечание: Я не ищу, чтобы найти все ключевые слова hashtag в массиве. Я хочу найти конкретное ключевое слово hashtag.
Кредит: Я использовал один из ответов от здесь: Search for PHP array element containing string
$ вара массив - просто сказать – ArtisticPhoenix
прекрасно работает и спасибо за разъяснение о регулярных выражениях правил, что действительно помогает! – Feanne
@Feanne - вы понимаете, что это будет соответствовать '* alpha',' + alpha', '% alpha', а также' # alpha', хотя, как мне показалось, я бы упомянул об этом. Как ни странно, только мой ответ будет соответствовать '# alpha' точно и никакого другого стартового слова. – ArtisticPhoenix