usort でこれを試しましたが、成功しませんでした。私は次の配列を持っています:
array(
[0] => array(
'date' => '3:6:2012'
),
[1] => array(
'date' => '5:5:2012'
),
[2] => array(
'date' => '20:12:2011'
)
)
日付は d:m:yyyy 形式なので、先行ゼロはありません。これを取得するために配列をソートしたい:
array(
[0] => array(
'date' => '20:12:2011'
),
[1] => array(
'date' => '5:5:2012'
),
[2] => array(
'date' => '3:6:2012'
)
)
私はこの方法で試しました:
function cmp($a, $b) {
if($a['date'] = $b['date']) {
return 0;
}
$partsa = explode(":", $a['date']);
$partsb = explode(":", $b['date']);
$daya = $partsa[0];
$montha = $partsa[1];
$yeara = $partsa[2];
$dayb = $partsb[0];
$monthb = $partsb[1];
$yearb = $partsb[2];
if($yeara < $yearb) {
return -1;
} elseif($yeara > $yearb) {
return 1;
} elseif($yeara == $yearb) {
if($montha < $monthb) {
return -1;
} elseif($montha > $monthb) {
return 1;
} elseif($montha == $monthb) {
if($daya < $dayb) {
return -1;
} elseif($daya > $dayb) {
return 1;
} elseif($daya == $dayb) {
return 0;
}
}
}
}
しかし、これはusortで良い結果をもたらしません...これを行う方法は?