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));
  }
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));
  }
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 ) ) ; }
Returns an array containing the intersection of all the arrays
Returns an array containing the intersection of all the arrays