public static function sort(&$ar){
    usort($ar, function($a, $b){
      if ( !str::is_number($a, $b) ){
        $a = str_replace('.', '0', str_replace('_', '1', str::change_case($a, 'lower')));
        $b = str_replace('.', '0', str_replace('_', '1', str::change_case($b, 'lower')));
        return strcmp($a, $b);
      }
      if ( $a > $b ){
        return 1;
      }
      else if ($a == $b){
        return 0;
      }
      return -1;
    });
  }