У меня есть массив имен файлов, которые мне нужно проверить против кода, например
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'; } }
Демо!