Php 将preg_match应用于数组的所有元素
如何在数组的每个元素上应用preg_匹配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
$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
,而不是迭代本身