Trim array (recursive)

Cleans a entire array recursivly.

Snippet information

Author:
Jonas

License:
Public Domain

Language:
PHP

Created:
03/28/2006

Updated:
10/01/2007

Tags:
,


/**
 * Trims a entire array recursivly.
 * 
 * @author      Jonas John
 * @version     0.2
 * @link        http://www.jonasjohn.de/snippets/php/trim-array.htm
 * @param       array      $Input      Input array
 */
function TrimArray($Input){
 
    if (!is_array($Input))
        return trim($Input);
 
    return array_map('TrimArray', $Input);
}
 
 
/* 
 
Old version (v0.1): 
 
function TrimArray($arr){
    if (!is_array($arr)){ return $arr; }
 
    while (list($key, $value) = each($arr)){
        if (is_array($value)){
            $arr[$key] = TrimArray($value);
        }
        else {
            $arr[$key] = trim($value);
        }
    }
    return $arr;
}
*/


Found a bug? Or do you have a better solution for this?
Feel free to leave a message:

Add a comment


Leave a comment

James August 12, 2010 at 01:44
Actually this is a more general solution:

function array_map_r($func, $arr)
{
return is_array($arr) ? array_map('array_map_r', array_fill(0, count($arr), $func), $arr) : call_user_func($func, $arr);
}

Then just call:

array_map_r("trim", $arr);
James August 12, 2010 at 00:35
Neat. This is what I'm going to use:


function trim_r($arr)
{
return is_array($arr) ? array_map('trim_r', $arr) : trim($arr);
}
jizzle July 15, 2010 at 16:30
Thank you, very helpful. However, instead of creating a new function, you could just use the trim function as the callback for array_map, for example:

array_map('trim', $arr);