I want to run 3 native functions on the same array: trim
, strtoupper
and mysql_real_escape_string
. Can this be done?
Trying to pass an array as a callback like this isn't working:
$exclude = array_map(array('trim','strtoupper','mysql_real_escape_string'), explode("\n", variable_get('gs_stats_filter', 'googlebot')));
Although this works fine because it's only using one native function as the callback:
$exclude = array_map('trim', explode("\n", variable_get('gs_stats_filter', 'googlebot')));
You'll have to do it like this:
$exclude = array_map(function($item) {
return mysql_real_escape_string(strtoupper(trim($item)));
}, explode("\n", variable_get('gs_stats_filter', 'googlebot')));
You could also do something like:
$exclude = array_map(function($item) {
return trim(strtoupper(mysql_real_escape_string($item)));
}, explode(...));
or something. Pass in an anonymous function that does all that stuff.
Hope that helps.
Good luck :)
Yes, just pass the result of one mapping into another:
$result = array_map(
'mysql_real_escape_string',
array_map(
'trim',
array_map(
'strtoupper',
$your_array
)
)
);
You can also use a callback in PHP 5.3+:
$result = array_map(function($x){
return mysql_real_escape_string(trim(strtoupper($x)));
}, $your_array);
or earlier (in versions of PHP lower than 5.3):
$result = array_map(
create_function('$x','return mysql_real_escape_string(trim(strtoupper($x)));'),
$your_array
);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With