Webプログラミング研究所〜初心者・中級者Webプログラマ(CGI・Perl・PHP・Javaプログラム言語)のための支援サイト〜 「Webプログラミング研究所」TOPへ 「Webプログラミング研究所」TOPへ
 
「プログラミングサンプル集」TOPへ 「プログラミングサンプル集」TOPへ
 
目次をフレームで表示 目次をフレームで表示
 

配列を降順でソートする

 
概要
 
Perl sort()関数とreverse()関数を使用します。

サンプルソース
@arr = (2, 4, 5, 1, 3);

@arr2 = sort(@arr);       #ソートする
@arr3 = reverse(@arr2);   #配列を逆順にする


for($i=0; $i<@arr3; $i++) {
  print $i . "番目 : " . $arr3[$i] . "\n";
}

実行結果
0番目 : 5
1番目 : 4
2番目 : 3
3番目 : 2
4番目 : 1

NOTE
 @arr2 = sort(@arr);
 @arr3 = reverse(@arr2);

この2行は、sort()関数を使用して、次のように1行で記述することもできます。
  @arr3 = sort {$b <=> $a} (@arr);  ………(※)
これで、配列@arrが逆順にソートし、配列@arr3に格納する処理が行われます。
sort()関数は次のような公式です。
 <ソートされた配列> = sort(<ソート対象の配列>);
 <ソートされた配列> = sort <ソート処理方法を記述したブロック> (<ソート対象の配列>);
 <ソートされた配列> = sort <関数名> (<ソート対象の配列>);

上記の(※)は、2番目の公式となります。ブロック内の変数$aと変数$bは、配列内の比較する2つの要素を表す特殊な意味を持つ変数です。 sort関数の場合はブロック内に記述し、2つの要素をどのようにソートするか決める場合に使用します。
 なお、sort()関数はデフォルトでは、昇順でソートする関数であるため、次の2つは同じ処理になります。
 (1) @arr2 = sort(@arr);
 (2) @arr2 = sort {$a <=> $b} (@arr);


「配列を降順でソートする」も参考にしてください。
 
PHP rsort()関数を使用します。

サンプルソース
<?php
  $arr = array(2, 4, 5, 1, 3);

  rsort($arr, SORT_NUMERIC); //ソートして逆順にする

  for($i=0; $i<sizeof($arr); $i++) {
    echo $i . "番目 : " . $arr[$i] . "\n";
  }
?>

実行結果
0番目 : 5
1番目 : 4
2番目 : 3
3番目 : 2
4番目 : 1

NOTE
rsort()関数は、逆順ソートをまとめて実行する便利な関数です。
公式は次のとおりです。
 rsort(<ソート対象の配列>, <ソート方法>);
<ソート方法>については、「配列を昇順でソートする」を参考にしてください。
 
Java java.util.Arraysクラスのsort()メソッドを使用します。

サンプルソース
import java.util.Arrays;

  public class ArraySortReverse {
    public static void main(String[] args) {
    int[] arr = {2, 4, 5, 1, 3};

    Arrays.sort(arr); //ソートする

    //逆順にする
    int length = arr.length; //配列の要素数
    int[] arr2 = new int[length]; //配列を生成
    for(int i=0; i<length; i++) {
      arr2[i] = arr[length - i - 1];
    }


    for(int i=0; i<arr2.length; i++) {
      System.out.println(i + "番目 : " + arr2[i]);
    }
  }
}

実行結果
0番目 : 5
1番目 : 4
2番目 : 3
3番目 : 2
4番目 : 1
 
NOTE
 
ご意見箱コーナー (管理者宛てメール)
このページは、あなたの参考になりましたか?

参考になった  どちらともいえない  あまり参考にならなかった

ご意見・ご感想・ご要望がありましたら、ご記入いただければ幸いです。
今後のコンテンツ作成、ページ改善等の参考にさせていただきます。

 


Webプログラマになりたい人のためのスクール・講座情報

クリエイターの皆さん!お仕事ありますよ!フェローズに!

パソコンスクールガイド
積極的な情報収集が目標実現の近道です。

就職・起業・SOHO・それとも副業? デジハリがノウハウを伝授!

就転職に強い、資格取得スキルアップ専門校ヒューマンアカデミー

CsideNet レンタルサーバー サブドメイン型 780円/月
CGI/SSI/PHP、データベース(MySQL)が利用できます。1週間の試用期間があるのがGood!!

転職・派遣・就職・アルバイトの求人情報検索支援サイト 〜 14ALL JOB SEARCH 〜
 
 
  「Webプログラミング研究所」TOPへ 「Webプログラミング研究所」TOPへ
 
「プログラミングサンプル集」TOPへ 「プログラミングサンプル集」TOPへ
 
目次をフレームフレームで表示 目次をフレームで表示

Copyright (C) 2004 - 2005 IWAMODE Project All Rights Reserved.