检查数组是否部分匹配(PHP)

时间:2013-08-20 15:21:32

标签: php arrays string partial

我有一个文件名数组,我需要检查代码,例如

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

字符串是“312312”,因此它将匹配“150_150_312312.jpg”,因为它包含该字符串。 如果搜索中根本没有匹配项,则将代码标记为缺失。

我试过in_array但是如果它是完全匹配的话似乎任何返回都是真的,不知道array_filter会不会这样做...

感谢您的任何建议......也许我一直盯着它看,咖啡可能会有所帮助:)

1 个答案:

答案 0 :(得分:11)

$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答案中建议的this

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

<强> Demo!