2012年12月30日日曜日

配列の並び順を逆順にしたい : array_reverse

配列に格納している日付を順番に並べて一覧にする場合に、たまに最新の日付から並べたいということがあります。
この配列は、生成された段階で日付の昇順に正しく並べられてることを前提とした場合、phpでは関数で簡単に配列の順番を逆順に変更できます。

$date = array {
'2012-12-30',
'2012-12-31',
'2013-01-01',
'2013-01-02',
'2013-01-03',
}

例えば、このような順序で日付が配列$dateに格納されている状態があるとします。
この順番は逆順(2013-01-03から順)に並び直したい場合に、複数の方法があると思います。
単純に考えればfor文で逆から回すようにすればいいのですが。
PHPでは、array_reverse関数を使うことで簡単に配列を逆順に変更できます。
$reverse_date = array_reverse($date);

条件式を組んでやるよりも簡単に逆順ソートが可能です。
これは前提として、配列に格納されている値の順番が正しい場合に限ります。
この順番が順不同の場合は、今回の方法では意図した通りにはなりません。

参考

PHP Manual : array_reverse