連想配列を日付でソートするときはarray_multisort()を使う PHP

更新日時順に返ってくる仕様のはずだったとあるAPIがいつのまにか仕様が変わり、、、jsonで返ってくる値にデータの更新日時があるのに、
なぜか五十音順で返ってくる仕様になっていました。curlでとってきたjsonデータをjson_decodeして配列に入れてみたら、もはや五十音順ですらなく、いったいどういう順番で返ってきているのかが謎。信じられるのはデータの更新日時だけ。

配列の中身を日時でソートできる都合のいい関数なんてないよね・・・と思ってぐぐったら

あった

PHP:array_multisort

<?php
$arr_data = array(
    [0] => array(
        "updated" => 2014-01-11,
        "val" => "aaaa",
    ),
    [1] => array(
        "updated" => 2014-01-27,
        "val" => "cccc",
    ),
    [2] => array(
        "updated" => 2014-01-21,
        "val" => "bbbb",
    )
);

foreach($arr_data as $key => $val){
  //updatedでソートする準備
    $updated[$key] = $val["updated"];
}
//配列のkeyのupdatedでソート
array_multisort($updated, SORT_DESC, $arr_data);
?>

これで$arr_dataはupadatedの降順でソートされましたとさ。
便利〜。

array_multisort忘れないようにしよ。

【参考】
QUALL 多次元配列のソート(array_multisort)について[PHP]