Может быть важно отметить, что если массив, используемый в str_replace, является многомерным, str_replace не будет работать.
Хотя это не дает прямого ответа на вопрос об использовании array_map без вызова дополнительной функции, эта функция все еще может быть полезна вместо 'str_replace' в первом параметре array_map, если решено, что вам нужно использовать array_map и замену строки на многомерных массивах. Он ведет себя так же, как при использовании str_replace:
function md_str_replace($find, $replace, $array) {
/* Same result as using str_replace on an array, but does so recursively for multi-dimensional arrays */
if (!is_array($array)) {
/* Used ireplace so that searches can be case insensitive */
return str_ireplace($find, $replace, $array);
}
$newArray = array();
foreach ($array as $key => $value) {
$newArray[$key] = md_str_replace($find, $replace, $value);
}
return $newArray;
}