public function intersection($array = null) { $arrays = self::_wrapArgs(func_get_args(), 1); if (count($arrays) === 1) { return self::_wrap($array); } $__ = new self(); $return = $__->first($arrays); foreach ($__->rest($arrays) as $next) { if (!$__->isArray($next)) { $next = str_split((string) $next); } $return = array_intersect($return, $next); } return self::_wrap(array_values($return)); }