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');