私のデータ構造は、私が第三の鍵でハッシュをソートしたい第3レベルキーによるハッシュのPerlのソート、ハッシュと
my %hash = (
firstkey => {
secondkey => {
2 => ['9','2'],
1 => ['3','4'],
3 => ['8','2']
}
}
);
print Dumper \%hash;
でそれを比較します。すなわち1
,2
および3
をこの場合 とし、配列内の2番目の要素(index[1]
)を比較してください。それらが同じ場合は、それを印刷してください。ソートされたハッシュ期待
:ソート、ハッシュ後
my %hash = (
firstkey => {
secondkey => {
1 => ['3','4'],
2 => ['9','2'],
3 => ['8','2']
}
}
);
print Dumper \%hash;
は、我々は第二の配列[9,2]
で第一配列[3,4]
のindex[1]
を比較します。 4
は2
と等しくないので、何も印刷しません。
次に、2番目の配列[9,2]
のindex[1]
と3番目の配列[4,2]
を比較します。 2
は、我々は唯一の隣接配列を比較する必要があり、それ
firstkey, secondkey, 3, [8,2]
のすべてのコンテンツを印刷しようとしている、2
に等しいです。
私はハッシュのソートについて多くのソリューションを読んでいましたが、本当にそれを並べ替える解決策を見つけることができませんでした。キーでハッシュを並べ替え、新しい順序でハッシュを作成する方法はありますか? または、forループを使用してハッシュをソートし、forループで比較することはできますか?
"_sort hash_"は本質的に順序付けられていません。しかし、あなたはキーのソートされたリストを取得することができます。あなたが望む任意の基準でハッシュのキーのリストに 'sort'を使います。しかし、あなたは、ソートされた方法でハッシュを使うことができるように、反復するキーの_ordered_リストを持っています。同様のハッシュを並べ替えるには[this post](https://stackoverflow.com/a/45338396/4653379)、もう少し詳しくは[this post](https://stackoverflow.com/a/45928281/4653379)を参照してください。いくつかのコメントと並べ替えを含む。そこにはもっとたくさんのことがあります。 – zdim
@zdimご意見ありがとうございます。私はそれを試みている。 – Luke
上記のコメントは一般的にうまくいっていますが、それに続く価値がありますが、この問題では役に立たない可能性があります(誤解を招く可能性があります)。 – zdim