[2539] 多次元配列を複数のキーで並び替えするには

投稿日 2019/12/07(Sat) 10:30:05
投稿者
参照先 https://riku22.net

 お世話になっております。

 多次元配列を匿名手順で並び替えようとしています。
 この際、複数のキーで並び替えをするには、どうしたらよいのでしょうか。
 とりあえず、サンプルソースです。

----- サンプルソース -----
ーーテスト用の配列を作成。
ーー今回は、4×3の配列を作成しているが、実際に扱おうとしている配列は、もう少し要素が多い。
配列は、{
{「A」, 「テスト1」, 20},
{「B」, 「テスト2」, 21},
{「A」, 「テスト3」, 22},
{「B」, 「テスト4」, 23},
}
配列を『
それを{左,右}とみなす
もし左(1)<右(1)なら
-1を返す。
他でもし左(1)>右(1)なら
1を返す。
そうでなければ
0を返す
もし終わり
』で並び替える
配列を改行で繋げて表示する
--------------------

 このソースコードを実行すると、単純に下記の結果が得られます。

----- 実際の実行結果 -----
{A,テスト3,22}
{A,テスト1,20}
{B,テスト4,23}
{B,テスト2,21}
--------------------

 ただ、今回は2番目の要素でも並び替えを行いたく、下記のような実行結果にしたいと考えています。

----- 想定される実行結果 -----
{A,テスト1,20}
{A,テスト3,22}
{B,テスト2,21}
{B,テスト4,23}
--------------------

 このような順番に並び替えるには、並び替えの手順をどのように書けばいいんでしょうか。
 単純に1番目の要素で並び替えを行ったあと、2番目の要素で並び替えを行うだけではうまくいかず、最初に宣言したときと同じような並び順になってしまいます。
 何かよい方法があれば、アドバイスをいただけると幸いです。

 以上、よろしくお願いいたします。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -