PHPで連想配列をソートする方法

ソート PHP
スポンサーリンク

こんにちは、てっちーです。
今回は、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次元配列の連想配列のソート方法についても近いうちに紹介したいと思います。

コメント

タイトルとURLをコピーしました