Php 将preg_match应用于数组的所有元素

Php 将preg_match应用于数组的所有元素,php,Php,如何在数组的每个元素上应用preg_匹配 $array = [abc,def,ghi]; 现在我正在这样做 foreach($array as $one_element){ if(!preg_match("/^[a-zA-Z0-9_. -]{1,23}$/",$one_element)){ die("One of element name is not valid"); } } 有没有更简单、更快捷的方法来实现这一点?是的,使用数组\u map: ar

如何在数组的每个元素上应用preg_匹配

$array = [abc,def,ghi];
现在我正在这样做

foreach($array as $one_element){   
    if(!preg_match("/^[a-zA-Z0-9_. -]{1,23}$/",$one_element)){
        die("One of element  name is not valid");
    }
}

有没有更简单、更快捷的方法来实现这一点?

是的,使用
数组\u map

array_map(
    function($elem) {
        if (!preg_match('/^[a-zA-Z0-9_. -]{1,23}$/', $elem)){
            die("One of element  name is not valid");
        }
    },
    $array
);

谢谢看起来很棒8行而不是5行。太好了@u_mulder一行:
数组映射(函数($elem){if(!preg_match('/^[a-zA-Z0-9.-]{1,23}$/',$value)){die(“元素名称之一无效”);},$array):-)你会感到震惊,但是
array\u map
也只是在幕后使用迭代,所以我看不到真正的利润。在3个元素的数组中,你不会赢得任何东西。@初学者不太可能。请看,最昂贵的调用是
preg\u match
,而不是迭代本身