2010-11-15 93 views
1
$people = array(
    array('id' => 12345,'first_name' => 'Joe1','date' => '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'), 
); 

我想這個數組元素按日期按日期在PHP升序 說,處理後看起來應該像下面這樣的排序,然後重新排列數組元素,排序和重新排列數組元素

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') 
) 

回答

0

如果你想要做手工(通過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()是比較函數和mdy2ymd()只是一個輔助,使表單MM/DD/YYYY可比時間戳。

+0

謝謝,它爲我工作..偉大的工作'jensgram'有一個美好的一天 – 2010-11-15 07:15:25