[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をフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!