phpでのソートについて
aaa.txtが例えば以下のようにカンマ区切りのデータだとしますと、
aaa-12,dmy,2014年3月5日,
ccc-22,dmy,2014年3月5日,
ddd-43dmy,,2014年3月4日,
yyy-45,dmy,2014年3月5日,
ddd-43,dmy,2014年3月2日,
※実際は日付は9番目の値になります
これを日付の新しい順にソートしたいのですが、
見よう見まねで以下のようにやった場合、日付順にはなるのですが
同じ日付がありますと上から順番ではなくランダムに処理されてしまい
当初の並びと異なってしまいます。
function cmp($a, $b) {
list(,,,,,,,,,$aa,) = explode(',', $a);
list(,,,,,,,,,$bb,) = explode(',', $b);
if ($aa == $bb) {
return 0;
}
return ($aa < $bb)? 1 : -1;
}
$lines = file('aaa.txt');
usort($lines, "cmp");
最終的には以下のように並べ替えをしたいのですが、
aaa-12,dmy,2014年3月5日,
ccc-22,dmy,2014年3月5日,
yyy-45,dmy,2014年3月5日,
ddd-43dmy,,2014年3月4日,
ddd-43,dmy,2014年3月2日,
日付でソートしますと
ccc-22,dmy,2014年3月5日,
yyy-45,dmy,2014年3月5日,
aaa-12,dmy,2014年3月5日,
ddd-43dmy,,2014年3月4日,
ddd-43,dmy,2014年3月2日,
こんな形で同じ日付の場合、順番が
最初のリストの上から順ではなくバラバラになってしまいます。
どのようにすれば可能になりますでしょうか。
お手数をおかけしますが
具体的なソースをご教授いただけるようですと大変助かります。
何卒よろしくお願い致します。