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

4

我有一个文件名的数组,需要与某个代码进行匹配检查,例如:

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

字符串为“312312”,因此它将匹配包含该字符串的“150_150_312312.jpg”。 如果在搜索中根本没有匹配项,则将代码标记为缺失。 我尝试过 in_array,但似乎只能返回完全匹配的 true,不知道 array_filter 是否可以... 感谢任何建议...也许我已经盯着太久了,喝杯咖啡可能会有所帮助 :)

1
http://stackoverflow.com/a/5592142/138383 - Aaron W.
我宁愿使用stripos而不是preg_函数。 - Artem L
重点是,使用preg_grep您不需要循环。 - Jeroen van den Broek
1个回答

16
$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';
    }
}

演示!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接