|
|
|
|
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 @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); 「配列を降順でソートする」も参考にしてください。 |
|
|
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 rsort()関数は、逆順ソートをまとめて実行する便利な関数です。 公式は次のとおりです。 rsort(<ソート対象の配列>, <ソート方法>); <ソート方法>については、「配列を昇順でソートする」を参考にしてください。 |
|
|
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 |
|
|
| ご意見箱コーナー (管理者宛てメール) |
|
このページは、あなたの参考になりましたか? |