[PHP] 連想配列を並び替えする方法(キーでのソート、値でのソート、ソート順の独自定義)
こんにちは、@yoheiMuneです。
PHPの連想配列は柔軟に使えて便利ですよね。今日は、連想配列の中身を並び替える方法を、ブログに書きたいと思います。
昇順ソートには
昇順ソートには
[PHP] 連想配列(多次元配列)をソートする(昇順、降順、ユーザー独自ソート、複数のソートキー)
https://www.php.net/manual/ja/array.sorting.php
最後になりますが本ブログでは、PHP、フロントエンド、Python、インフラ、サーバー、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
PHPの連想配列は柔軟に使えて便利ですよね。今日は、連想配列の中身を並び替える方法を、ブログに書きたいと思います。
目次
ソートの説明に使う連想配列
このブログでは、以下の連想配列を使って、ソートを説明します。$fruits = [ '01' => 'apple', '02' => 'orange', '03' => 'pinapple' ];
キーでのソート(昇順、降順、ユーザー定義)
キーでの並び替えは、連想配列のキー(01、02、03)を使ってソートします。昇順ソートには
ksort()、降順ソートにはkrsort()、ユーザー定義によるソートにはuksort()を使います。// キーで昇順ソート ksort($fruits); // Array // ( // [01] => apple // [02] => orange // [03] => pinapple // )
// キーで降順ソート krsort($fruits); // Array // ( // [03] => pinapple // [02] => orange // [01] => apple // )
// ユーザー定義によるソート
// (ここでは、キーの昇順に並べています)
uksort($fruits, function ($key1, $key2) {
return intval($key1) - intval($key2);
});
// Array
// (
// [01] => apple
// [02] => orange
// [03] => pinapple
// )
値でのソート(昇順、降順、ユーザー定義)
値での並び替えは、連想配列の値(apple、orange、pinapple)を使ってソートします。昇順ソートには
asort()、降順ソートにはarsort()、ユーザー定義によるソートにはuasort()を使います。// 値で昇順ソート asort($fruits); // Array // ( // [01] => apple // [02] => orange // [03] => pinapple // )
// 値で降順ソート arsort($fruits); // Array // ( // [03] => pinapple // [02] => orange // [01] => apple // )
// ユーザー定義によるソート
// (ここでは、値の文字数が多い順に並べています)
uasort($fruits, function ($value1, $value2) {
return strlen($value2) - strlen($value1);
});
// Array
// (
// [03] => pinapple
// [02] => orange
// [01] => apple
// )
関連:連想配列(多次元配列)をソートするには
以下のような多次元配列をソートする方法もブログに書きました。良ければ合わせてご確認ください。
// 多次元配列の例(DBの検索結果など)
$fruits = [
array('id' =>'01', 'name' => 'apple'),
array('id' =>'02', 'name' => 'orange'),
array('id' =>'03', 'name' => 'pinapple')
];
[PHP] 連想配列(多次元配列)をソートする(昇順、降順、ユーザー独自ソート、複数のソートキー)
参考資料
PHPの配列並び替えについてのマニュアルです。今回紹介したもの以外にも関数があります。https://www.php.net/manual/ja/array.sorting.php
最後に
PHPでの実装をしていると、ちょっとしたことを調べることも多いので、少しずつノウハウを貯めてたいなと思っています。PHPには沢山の便利な関数が用意されていて、それらを知ると知らないとでは効率が大きく変わるので、1つずつ学べると良いなと思います。最後になりますが本ブログでは、PHP、フロントエンド、Python、インフラ、サーバー、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!





