PHP配列のキーを値でソートする方法
PHPは配列のキーと値をソートするための優れたアプローチをいくつか提供します。一般的によく利用されているソート手法を以下に示します。
- sort(): キーの昇順でソートします。
$fruits = array("apple", "banana", "cherry");
sort($fruits);
- rsort():キーの降順にソートする。
$fruits = array("apple", "banana", "cherry");
rsort($fruits);
- asort():キーを昇順にソートするが、キー名は保持する。
$fruits = array("a" => "apple", "b" => "banana", "c" => "cherry");
asort($fruits);
- arsort():キーの降順でソートするが、キー名は保持する。
$fruits = array("a" => "apple", "b" => "banana", "c" => "cherry");
arsort($fruits);
- ksort():キー名の昇順でソートします。
$fruits = array("c" => "cherry", "b" => "banana", "a" => "apple");
ksort($fruits);
- krsort():キー名を降順で並び替えます。
$fruits = array("c" => "cherry", "b" => "banana", "a" => "apple");
krsort($fruits);
元の配列の順序を変更するソート関数のほかに、元の配列の順序を保持する関数もあります。
- asort():キーの昇順に並べ替えを行いますが、元の配列のキー名と対応するキーの関連が保持されます。
$fruits = array("a" => "apple", "b" => "banana", "c" => "cherry");
uasort($fruits, function($a, $b) {
return strcmp($a, $b);
});
- カスタム比較関数を使用したソート。配列キーと対応するキー値の関連付けを保持。
$fruits = array("a" => "apple", "b" => "banana", "c" => "cherry");
uasort($fruits, function($a, $b) {
return strcmp($a, $b);
});
これらメソッドの uasort() と uksort() 関数は、カスタムの比較関数を使用して、より複雑な並べ替えロジックを実現できます。