Php 为数组的每个值应用函数
考虑字符串数组:Php 为数组的每个值应用函数,php,Php,考虑字符串数组: $array = ('hello', 'hello1', 'hello2'); 我需要preg_quote($value,“/”)每个值 我想避免使用foreach。数组漫游不起作用,因为它也传递了密钥 array_walk($array,'preg_quote','/'); //> Errors, third parameter given to preg_quote 有其他选择吗?使用匿名函数(>=5.3)尝试数组映射(): 您可以(使用PHP5.3)执行以下操作
$array = ('hello', 'hello1', 'hello2');
我需要preg_quote($value,“/”)代码>每个值
我想避免使用foreach
。数组漫游不起作用,因为它也传递了密钥
array_walk($array,'preg_quote','/'); //> Errors, third parameter given to preg_quote
有其他选择吗?使用匿名函数(>=5.3)尝试数组映射()
:
您可以(使用PHP5.3)执行以下操作:
在PHP中使用
使用foreach
。正是因为这个原因。但如果你坚持:
array_walk($arr, create_function('&$val', '$val = preg_quote($val, "/");'));
我们忘记提到的另一个选择是:
function user_preg_quote($key, $value) {
return preg_quote($value, '/');
}
array_walk($array, 'user_preg_quote');
但是一个简单的foreach可能会更好。我可以问一下,为什么您不想使用foreach
?使用array\u map()代码>好的,在这一点上,最好是一个简单的foreach。更清晰。谢谢,我会接受的soon@yes123是的,我也会使用foreach代码>?编辑:没关系,这对我来说是个侥幸,因为我没有一个/
可以逃避。第二个数组
只是被忽略了。@genesis问题放在一边,这怎么会比你自己的更“复杂”(我会使用卷积)呢?事实上,它在一条线上?@Mr.失望我不确定,它只是闻起来更凌乱对我来说更好的解决办法是回调。除非您使用的是5.3PHP。
$newarray = array_map(function($a) {return preg_quote($a, '/');}, $input_array);
array_walk($arr, create_function('&$val', '$val = preg_quote($val, "/");'));
function user_preg_quote($key, $value) {
return preg_quote($value, '/');
}
array_walk($array, 'user_preg_quote');