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