Применение функции для каждого значения массива

Учитывая массив строк:

$array = ('hello','hello1','hello2'); 

Мне нужно preg_quote($value,'/'); каждое из значений.

Я хочу избежать использования foreach . Массивная прогулка не работает, он также передает ключ.

 array_walk($array,'preg_quote','/'); //> Errors, 3rd param given to preg_quote 

Какой-нибудь эстрадный?

попробуйте array_map() [doc] с анонимной функцией (> = 5.3)

 $array = array_map(function($value){ return preg_quote($value, '/'); }, $array); 

рабочая демонстрация

Вы можете сделать (с PHP 5.3):

 array_map(function($elem) { preg_quote($elem, '/'); }, $array); 

В PHP <5.2 нет никаких неприятных функций (первый аргумент карты массива), и в этом случае вы должны сделать глобальную функцию.

Использовать array_map()

 $newarray = array_map(function($a) {return preg_quote($a, '/');}, $input_array); 

Используйте 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'); 

Но, может быть, все-таки простой промах был бы лучше.