こんにちは、てっちーです。
今回は、PHPで連想配列をソートする方法について紹介したいと思います。連想配列は幾つかの関数を使えばお手軽にソートできます。これらの関数を使えばキーと値のどちらを基準にしてもソート可能です。覚えておいて損はないので見てみてください。
連想配列をソートする方法
ソート関数
連想配列のソートはソート方法によって関数が異なります。つまり同じ関数のオプションを変えるのではなく、別々の関数に配列を渡すだけです。渡された配列はソートされ、上書きされます。もし上書きが困る場合は、ソートする前にコピーしてからソートしてください。
主な関数は次の通りです。どの関数もキーと値の位置関係は維持します。
関数名 | ソートの対象 | キーと値の位置関係 | ソート順 |
---|---|---|---|
asort(配列) | 値 | 維持 | 昇順 |
arsort(配列) | 値 | 維持 | 降順 |
krsort(配列) | キー | 維持 | 降順 |
ksort(配列) | キー | 維持 | 昇順 |
最初の文字は、値の”a”またはキーの”k”で、降順にしたい場合は2つ名にreverseの”r”を入れてる。最後にsortをつける。若干、適当に説明したので嘘っぽいですが、覚えるのは簡単です。
ですが、こちらのPHPマニュアルを確認すると覚えなくても大丈夫です。
連想配列のソート使用例
ソート関数の使用例です。参考にしてみてください。
<? // ソートする配列 $list = array( 'tanaka'=> 320, 'sato'=> 132, 'ito'=> 256, 'suzuki'=> 226, ); asort($list); var_dump($list); // asortの結果を出力 arsort($list); var_dump($list); // arsortの結果を出力 ksort($list); var_dump($list); // ksortの結果を出力 krsort($list); var_dump($list); // krsortの結果を出力2
結果は次の通り
array(4) { ["sato"]=> int(132) ["suzuki"]=> int(226) ["ito"]=> int(256) ["tanaka"]=> int(320) } array(4) { ["tanaka"]=> int(320) ["ito"]=> int(256) ["suzuki"]=> int(226) ["sato"]=> int(132) } array(4) { ["ito"]=> int(256) ["sato"]=> int(132) ["suzuki"]=> int(226) ["tanaka"]=> int(320) } array(4) { ["tanaka"]=> int(320) ["suzuki"]=> int(226) ["sato"]=> int(132) ["ito"]=> int(256) }
まとめ
今回は1次元の連想配列のソート方法について紹介しました。ソートは頻繁に使用するので必要な時に参考にしてください。2次元配列の連想配列のソート方法についても近いうちに紹介したいと思います。
コメント