考虑一个字符串数组:
$array = ('hello','hello1','hello2');
我需要preg_quote($value,'/');
每个值。
我想避免使用foreach
。数组步行不会工作,因为它也传递了密钥。
array_walk($array,'preg_quote','/'); //> Errors, 3rd param given to preg_quote
任何altrenative?
答案 0 :(得分:18)
使用匿名函数(> = 5.3)
尝试array_map()
[doc]
$array = array_map(function($value){
return preg_quote($value, '/');
}, $array);
答案 1 :(得分:3)
$newarray = array_map(function($a) {return preg_quote($a, '/');}, $input_array);
答案 2 :(得分:2)
你可以(用PHP 5.3):
array_map(function($elem) { return preg_quote($elem, '/'); }, $array);
在PHP< 5.2中没有烦人的函数(数组映射的第一个参数),在这种情况下你应该创建一个全局函数。
答案 3 :(得分:1)
使用foreach。它为此做出了共鸣。但如果你坚持:
array_walk($arr, create_function('&$val', '$val = preg_quote($val,"/");'));
答案 4 :(得分:0)
我们忘记提及的替代方案是:
function user_preg_quote($key,$value) {
return preg_quote($value,'/');
}
array_walk($array,'user_preg_quote');
但是,一个简单的foreach也许会更好。