2012-04-01 5 views
0

Как я могу отсортировать 2D-массив в PHP. Я хочу, чтобы отсортировать по дате, массив в следующем формате:Array sort in PHP

[result] => Array 
     (
      [0] => Array 
       (
        [link] => http://local/node/0 
        [date] => 13158505310 
       ) 

      [1] => Array 
       (
        [link] => http://local/node/1 
        [date] => 13158505311 
       ) 

      [2] => Array 
       (
        [link] => http://local/node/2 
        [date] => 13158505312 

ответ

1

Используйте этот

function sortByDateDesc($a, $b) { 
    return strcmp($a["date"], $b["date"]); 
} 

function sortByDateAsc($a, $b) { 

    if ($a['date'] == $b['date']) { 
     return 0; 
    } 
    return ($a['date'] > $b['date']) ? -1 : 1; 
} 

usort($array, 'sortByDateDesc'); //Descending order 
//usort($array, 'sortByDateAsc'); //Asceding order 
+0

я не встречал usort, я должен был сделать это '$ B [«дата»] - $ а [ 'дата]' для DESC заказ. – GoodSp33d

3

Использование usort:

usort($array, function($a, $b){ return $a["date"] - $b["date"]; }); 
0

может быть этот код полезным для вас ....

// Obtain a list of columns 
foreach (data as key => row) { 
    links[key] = row['link']; 
    dates[key] = row['date']; 
} 

// Sort the data with link descending, date ascending 
// Add $data as the last parameter, to sort by the common key 
array_multisort(link, SORT_DESC, date, SORT_ASC, data);