Array_Map using multiple native callbacks?

J. Scott Elblein picture J. Scott Elblein · Jan 7, 2012 · Viewed 7.8k times · Source

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

Answer

Tim Cooper picture Tim Cooper · Jan 7, 2012

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