开发者

Sort and rearrange array elements

$people = array(
    array('id' => 12345,'first_name' => 'Joe1','date' =开发者_如何学Python> '02/06/2011'),
    array('id' => 12346,'first_name' => 'Joe','date' => '01/27/2011'),
    array('id' => 12347,'first_name' => 'rah','date' => '01/22/2011'),
    array('id' => 12348,'first_name' => 'sar','date' => '02/21/2011'),
    array('id' => 12349,'first_name' => 'raj','date' => '04/18/2011'),
    array('id' => 12350,'first_name' => 'viv','date' => '01/31/2011'),
);

I want this array elements to sort by date and then rearrange the array elements according to the ascending order of date in php say the after process should look like this below on ,

var_export($people); 
//answer

array(
  array('id' => 12347, 'first_name' => 'rah', 'date' => '01/22/2011'),
  array('id' => 12346, 'first_name' => 'Joe', 'date' => '01/27/2011'),
  array('id' => 12350, 'first_name' => 'viv', 'date' => '01/31/2011'),
  array('id' => 12345, 'first_name' => 'Joe1', 'date' => '02/06/2011'),
  array('id' => 12348, 'first_name' => 'sar', 'date' => '02/21/2011'),
  array('id' => 12349, 'first_name' => 'raj', 'date' => '04/18/2011')
)


In case you want to do it manually (by means of usort()):

function mdy2ymd($date) {
        $parts = explode('/', $date);
        return $parts[2] . $parts[0] . $parts[1]; // YYYYMMDD
}

function sortByDate($a, $b) {
        return mdy2ymd($a['date']) - mdy2ymd($b['date']);
}

usort($people, 'sortByDate');

(Demo)

sortByDate() is the comparison function and mdy2ymd() is just a helper to make timestamps on the form MM/DD/YYYY comparable.


See array_multisort example #3

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜