PHPでは、sort()関数を使用して値ごとに並べ替えますが、その欠点は、配列のキー名を破壊することです。キー名を保持するために、カスタム関数を使用してこの関数を実装できます。
以下は、値でソートする際に配列のキー名を保持するカスタム関数です。
関数SORTYVALUE($ array){ $ sortedValues = array_values($ array); ASORT($ sortedValues); $ sortedkeys = array_keys($ sortedValues); return array_combine($ sortedkeys、$ array); }
キー名を持つ配列があるとします。次のコードは、カスタム関数を使用して配列をソートする方法を示しています。
$ array = [ 「Apple」=> 10、 「バナナ」=> 20、 「オレンジ」=> 5 ]; $ SORTEDARRAY = SORTBYVALUE($ array); print_r($ sortedarray);
コードの実行後の出力結果は次のとおりです。
配列 ( [オレンジ] => 5 [Apple] => 10 [バナナ] => 20 ))
ご覧のとおり、配列は昇順で値の順序でソートされ、キー名は変更されません。
この記事で説明した方法を使用して、PHP開発者は値ごとに配列を簡単に並べ替えてキー名を保持できます。この方法は、sort()関数を使用するときにキー名の欠落の問題を回避し、キー名を対応する値に保持する必要がある状況に非常に適しています。