Проверить массив для частичного соответствия (PHP)

У меня есть массив имен файлов, которые мне нужно проверить против кода, например

array("120_120_435645.jpg","150_150_312312.jpg","250_250_1232327.jpg"); 

строка «312312», поэтому она будет соответствовать «150_150_312312.jpg», поскольку она содержит эту строку. Если в поиске нет совпадений, тогда флаг отсутствует.

Я попробовал in_array, но это похоже на любое возвращение true, если оно является точным совпадением, не знаю, будет ли array_filter делать это в увядке …

Спасибо за любой совет … возможно, я слишком долго смотрел на него, и кофе может помочь 🙂

 $filenames = array("120_120_435645.jpg","150_150_312312.jpg","250_250_1232327.jpg"); $matches = preg_grep("/312312/", $filenames); print_r($matches); 

Вывод:

 Array ( [1] => 150_150_312312.jpg ) 

Или, если вы не хотите использовать регулярное выражение, вы можете просто использовать strpos как предложено в этом ответе:

 foreach ($filenames as $filename) { if (strpos($filename,'312312') !== false) { echo 'True'; } } 

Демо!