public function testArrayMapRecursive() { $array = array('a ', array(' b', 'c')); $strtoupper = array('A ', array(' B', 'C')); $trim = array('a', array('b', 'c')); $this->assertEquals($strtoupper, ArrayLib::array_map_recursive('strtoupper', $array)); $this->assertEquals($trim, ArrayLib::array_map_recursive('trim', $array)); }
public function getList() { $context = $this->getSearchContext(); $params = $this->getRequest()->requestVar('q'); if (is_array($params)) { $params = ArrayLib::array_map_recursive('trim', $params); } $list = $context->getResults($params); $this->extend('updateList', $list); return $list; }
/** * Similar to array_map, but recurses when arrays are encountered. * * Actually only one array argument is supported. * * @param $f callback to apply * @param $array array * @return array */ public static function array_map_recursive($f, $array) { $applyOrRecurse = function ($v) use($f) { return is_array($v) ? ArrayLib::array_map_recursive($f, $v) : call_user_func($f, $v); }; return array_map($applyOrRecurse, $array); }