PHP

【PHP】連想配列やエンティティ配列の並び替えに超便利!upsort関数の使い方

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関数を使用する必要があります

-PHP