PHP(ピー・エイチ・ピー)

PHP

array_multisort()関数を使って多次元配列をソートしてみる【PHP】

配列をソートする時、

例えば、

$arr_data = array("テストデータ03", "テストデータ02", "テストデータ04", "テストデータ01");

という配列があったとすると、

 

sort($arr_data);

とすれば昇順に、

 

rsort($arr_data);

とすれば降順に簡単にソートできます。

 

これ、

多次元配列も同じようにソートできるの?

 

となると、

それは無理です。

 

じゃあ、

多次元配列の時はどうやってソートするのかといえば、

array_multisort()関数を使ってやります。

 

sort()関数やrsort()関数に比べれば多少面倒ですが、

慣れればそんなに難しいものでもありません。

 

例えば、

$arr_data = array(
 3 => array(
  "text" => "テストデータ03",
  "modified" => "2012-05-13",
 ),
 4 => array(
  "text" => "テストデータ04",
  "modified" => "2012-05-14",
 ),
 1 => array(
  "text" => "テストデータ01",
  "modified" => "2012-05-11",
 ),
 2 => array(
  "text" => "テストデータ02",
  "modified" => "2012-05-12",
 )
);

のような配列データを更新日(modified)順に並べ替えたい時には、

foreach($arr_data as $key => $value){
 $modified[$key] = $value["modified"];
}
array_multisort($modified, SORT_DESC, $arr_data);

とするだけです。

 

要は、

foreach()を使って更新日(modified)の配列を作ってやり、

あとは、

array_multisort()関数に適切にデータをセットして実行するだけ。

 

これだけで、

多次元配列のソートにも対応できます。

 

因みに、

データを昇順に並び替えたい場合には、

2番目の引数に「SORT_DESC」ではなく「SORT_ASC」をセットしてやります。

 

 

http://blog.quall.net/program/235/

この辺のサイトに書いてくれていることを参考すれば、

多次元配列を複数項目でソートするも簡単にできそうですね!!

WordPress短期学習プログラム

関連記事

  1. PHP(ピー・エイチ・ピー)

    PHP

    ConoHaのVPSサーバーへPHPの最新バージョン(PHP7)をインストール

    ConoHa VPSへPHPの最新バージョンをインストールする方法…

  2. Security(セキュリティ)

    PHP

    PHP脆弱性対応 フォームの改行コード、復帰コードの取り扱い

    サイト構築時、大概の場合お問合せフォームを設置すると思いますが、…

  3. PHP(ピー・エイチ・ピー)

    PHP

    【PHP】エラーの表示・非表示とエラーレベルの設定

    エラーの表示・非表示の設定PHPを使った開発案件でエラーを…

  4. PHP(ピー・エイチ・ピー)

    PHP

    勝手にサーバ移行はやめて。。。

    かなり前に弊社が作成、納品したデータの入力システムがあるのですが、…

  5. PHP(ピー・エイチ・ピー)

    PHP

    CodeIgniter データベースキャッシュ機能を利用

    現在、CodeIgniterを利用してシステムの開発を行っています…

  6. PHP(ピー・エイチ・ピー)

    PHP

    Fatal error: Call to undefined function hash_hmac(…

    パスワードからハッシュ値を生成してDBに登録しようと、$pas…

最近の記事

  1. SEO関連タグ
  2. SEO関連タグ
  3. レンタルサーバー(共用サーバー)
  4. システム開発用のアイキャッチ
  5. システム開発用のアイキャッチ
  6. ドメイン 利用制限
  7. WP:WordPress(ワードプレス)
  8. システム開発用のアイキャッチ
  9. システム開発用のアイキャッチ
  10. Theme(テーマ)の選択
PAGE TOP