В 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