在PHP中,是否有一种函数或其他方式可以删除与正则表达式不匹配的数组中的所有元素。
我的正则表达式是这样的:preg_match('/^[a-z0-9\-]+$/i', $str)
我的数组以这种形式从表单中传入(实际上它们是标签)
来自表单的原始数组。注意:恶意标签
$arr = array (
"french-cuisine",
"french-fries",
"snack-food",
"evil*tag!!",
"fast-food",
"more~evil*tags"
);
清理后的数组。注意,没有恶意标签。
Array (
[0] => french-cuisine
[1] => french-fries
[2] => snack-food
[3] => fast-food
)
我目前是这样做的,但有更好的方法吗?没有循环可能吗?
foreach($arr as $key => $value) {
if(!preg_match('/^[a-z0-9\-]+$/i', $value)) {
unset($arr[$key]);
}
}
print_r($arr);
array_filter
。 - Barmar