public static function grep($array, $callback, $invert = false) { $result = array(); foreach ($array as $k => $v) { $r = call_user_func_array($callback, array($v, $k)); if ($r === !(bool) $invert) { $result[] = $v; } } return $result; }