
upsort関数は、PHPの配列を指定したキーで昇順に並び替えるための便利な関数です。
主に、連想配列やエンティティ配列のソートに使用されます。
upsort関数の使い方を説明します。
基本的な使い方
upsort(array &$array, string $key)
upsort関数には、2つの引数があります。
第1引数は、ソートする配列を参照渡しで受け取ります。
第2引数は、ソートするためのキーを文字列で指定します。
以下は、連想配列をキーで昇順にソートする例です。
$fruits = [
['name' => 'apple', 'price' => 100],
['name' => 'orange', 'price' => 80],
['name' => 'banana', 'price' => 120],
];
upsort($fruits, 'price');
print_r($fruits);
上記のコードでは、$fruits配列をpriceキーで昇順にソートしています。
結果は以下のようになります。
Array
(
[0] => Array
(
[name] => orange
[price] => 80
)
[1] => Array
(
[name] => apple
[price] => 100
)
[2] => Array
(
[name] => banana
[price] => 120
)
)
降順でソートする
upsort関数は、昇順でソートする場合と同様に、降順でソートすることもできます。
降順でソートするには、次のようにコードを書きます。
upsort($fruits, 'price DESC');
このように、キー名の後ろに「 DESC 」という文字列を付け加えることで、降順でソートすることができます。
キーが存在しない場合の挙動
upsort関数は、指定されたキーが存在しない場合には、何もしません。
つまり、そのままの順序で配列が返されます。
注意点
upsort関数は、元の配列を直接変更します。
つまり、配列のコピーを作成するわけではありません。
そのため、もし元の配列を別の箇所で使用している場合には、意図しない動作をする可能性があります。
そのような場合は、事前に元の配列のコピーを作成するなどして対処する必要があります。
また、upsort関数はPHP 7.0以降でのみ使用可能です。
PHP 5.x系の場合は、usort関数を使用する必要があります