多次元配列のソート:array_multisort関数array_multisort関数を使って、多次元配列を特定のキーを軸にして並び替える方法について解説します。この記事のポイント多次元配列を特定の値を軸にしてソートするソートの軸になる値を2つ以上指定する目次ものすごく便利な多次元配列のソートデータの型についてものすごく便利な多次元配列のソート単一の配列のソートは簡単ですが、2次元以上の多次元になっている配列をソートしたいときはソートの基準となるキーや値が複数になるため複雑になります。次のような2次元配列のデータがあるとします。));この配列に対して、年齢を表す「age」の値を基準に昇順に並べ、さらに値が同じ場合は「id」を降順に並べたいとします。このように多次元配列で複数の値を軸にしてソートしたい場合、単一の配列よりもやや複雑ですがarray_multisort関数を使うことで意図したソートを実現できます。ソート後の配列を出力var_dump($array);配列のソート実行前、実行後はそれぞれ次のようになります。}}意図した通り、年齢の昇順、idの降順で配列がソートされました。array_multisort関数は、次のようにパラメータを受け取ってソートを行います。ソートしたい配列);上記のように、ソートの基準データの指定はデータの入った配列、並び順の指定、データの型の3つを1セットに指定します。この中で、「並び順」と「データの型」はオプションとなるため省略できます。この関数は実行すると、ソートした後の配列が自動的に「ソートしたい配列」で指定した配列に格納されます。返り値はソートに成功したら「true」、失敗した場合は「false」です。今回のコード例ではソートの軸になるデータを「年齢」と「id」の2つ設定していますが、1つでも3つでも、もしくはそれ以上を指定することも可能です。ソートしたい配列);今回の配列でソートする軸の配列を3つにした場合は、次のようになります。$array);ソートの軸となる配列はソート実行前に用意します。この配列はソートする値のみが入っている状態にする必要があります。上記コードではforeach文で$arrayのデータを1つずつ取り出して、$age_arrayと$id_arrayにそれぞれの値を格納して作成しています。$value['age'];}あとはこの配列をarray_multisort関数に渡して実行するだけでOKです。データの型についてつい忘れがちですが、軸となるデータの型はしっかり指定しておいた方が確実にソートすることができます。指定できる型は次の6種類です。使用している言語を踏まえたうえで、文字列として比較。言語はsetlocale関数で指定します。アルファベットの大文字、小文字を区別しないでソートの比較。(パイプライン)」を使って行います。$array);こちらの記事は役に立ちましたか?GoodBadありがとうございます。よろしければ、あわせてフィードバックや要望などをご入力ください。コメント送信コメントありがとうございます!運営の参考にさせていただきます。)PHP2019-11-16フォームの基本構造を作成するPHP2019-11-16はしご高など旧字体漢字の文字化けを防ぐRECOMMEND人類を前に進めたいチームラボ代表・猪子寿之さんと評論家・宇野常寛さんによる、チームラボの目指す「境界のない世界」についての対談がまとまった一冊。内容はもちろん、フルカラーで写真も綺麗でした。