2010-08-29 9 views
5

Ich habe ein Array wie folgt aus:sortieren ein Array Basis auf Schlüssel

Array 
(
    [0] => Array 
     (
      [title] => some title 
      [time] => 1279231500 
     ) 

    [1] => Array 
     (
      [title] => some title 2 
      [time] => 1279231440 
     ) 

    [2] => Array 
     (
      [title] => some title 3 
      [time] => 1279229880 
     ) 
) 

, wie ich es basierend auf Zeit sortieren?

Antwort

4

Sie können es auf diese Weise sortiert werden (da es ein assoziatives Array):

function cmp($a, $b) 
{ 
    return strcmp($a['time'], $b['time']); 
} 

usort($your_array, "cmp"); 
print_r($your_array); 
+0

eine Idee, wie die Reihenfolge umzukehren? – greenbandit

+0

@greenbandit - Ändern Sie die Vergleichsfunktion in 'return strcmp ($ b ['time'], $ a ['time']);' - usort() sortiert nach 'cmp()'. –

+0

@reverse: Entweder '-1 * strcmp (...);' zurückgeben oder 'array_reverse' nach sort anwenden. – NikiC

1

Wie Gumbo erwähnt, sollten Sie nicht strcmp für ganzzahlige Werte verwenden.

Mit dieser Funktion können

function cmp($a, $b) { 
    if ($a['time'] == $b['time']) 
     return 0; 
    return ($a['time'] < $b['time']) ? -1 : 1; 
} 
+0

Für Integer-Werte würde 'return $ a ['time'] - $ b ['time'];' ausreichen. – salathe

Verwandte Themen