2016-07-21 13 views
-2

Ich habe dieses Arraynach dem Datum des Array mit PHP

Array 
    (
     [0] => Array 
      (
       [meeting_archive_id] => 1 
       [corp_aggregate_id] => 1 
       [created_by] => 103 
       [created_to] => 2 
       [date] => 15-07-2016 
       [time] => 10:00 am 
       [entry_id] => 103 
       [user_type] => 1 
       [firstname] => Kenyon 
       [lastname] => Martena 
       [job_title] => 
       [email] => 
       [company_name] => Lorem Ipsum Sodales Incorporated 
       [phone] => 1-446-161-3194 
       [type] => meeting 
      ) 

     [1] => Array 
      (
       [meeting_archive_id] => 16 
       [corp_aggregate_id] => 2 
       [created_by] => 103 
       [created_to] => 6 
       [date] => 17-07-2016 
       [time] => 1:00 am 
       [entry_id] => 103 
       [user_type] => 1 
       [firstname] => Hedley 
       [lastname] => Aurelia 
       [job_title] => 
       [email] => 
       [company_name] => Sit Amet Ante Corp. 
       [phone] => 1-484-144-8520 
       [type] => meeting 
      ) 

     [2] => Array 
      (
       [user_type] => 2 
       [firstname] => Abbot 
       [lastname] => Odessa 
       [job_title] => 
       [email] => 
       [company_name] => Fermentum Vel Mauris Consulting 
       [phone] => 1-912-440-1465 
       [type] => event 
       [meeting_archive_id] => 69 
       [date] => 02-08-2016 
       [time] => 8.00 
       [corp_aggregate_id] => 
       [inves_aggregate_id] => 
      ) 

     [3] => Array 
      (
       [user_type] => 1 
       [firstname] => Kenyon 
       [lastname] => Martena 
       [job_title] => 
       [email] => 
       [company_name] => Lorem Ipsum Sodales Incorporated 
       [phone] => 1-446-161-3194 
       [type] => event 
       [meeting_archive_id] => 70 
       [date] => 15-07-2016 
       [time] => 8.00 
       [corp_aggregate_id] => 
       [inves_aggregate_id] => 
      ) 

    ) 

Ich brauche zu sortieren dieses Array nach Datum

+2

möglich Duplikat von [Sortieren mehrdimensionales Array von Value] (http://stackoverflow.com/questions/2699086/sort-multi-dimensional -array-by-value) – Bailey

+1

http://stackoverflow.com/questions/17364127/how-can-i-sort-arrays-and-data-in-php –

+0

kann man das nicht einfach auf dem 'SELECT' sortieren stattdessen? – Ghost

Antwort

-1

Sie können versuchen, mit usort Sortierung absteigend:

usort($array, function($a, $b) { 
    $d1 = strtotime($a['date']); 
    $d2 = strtotime($b['date']); 
    return $d1 - $d2; 
}); 

$a und $b sind ein Ritzen, die Teil des Main-Array $array sind und dann ihre Zeiten vergleichen.

ursprüngliche Definition von usort ist:

bool usort (array &$array , callable $value_compare_func) 

und aufrufbare Funktion ist:

int callback (mixed $a, mixed $b) 

in out Fall aufrufbare Funktion ist:

function($a, $b) { 
    $d1 = strtotime($a['date']); 
    $d2 = strtotime($b['date']); 
    return $d1 - $d2; 
} 

usort dass Array nehmen arbeitet als Erstes Argument und zweites Argument aufrufbare Funktion. Diese aufrufbare Funktion außer, um zwei Elemente des Arrays zu erhalten. Intern verwendet es den Quicksort-Algorithmus und die Callable-Funktion sollte den Integer-Wert 0, 1 oder -1 zurückgeben.

Wenn die beiden Daten (oder irgendetwas, was verglichen werden soll) gleich sind, soll die Funktion zurückgeben 0

Wenn das erste Element größer ist, sollte es 1 zurück, wenn das zweite Element größer es ist, sollte zurückkehren -1

Das Eingabearray (der erste Parameter in der usort-Funktion) wird als Referenz übergeben, daher wird Ihr Array sofort nach dem Aufruf von usort sortiert.

0

Sie können diese Schnipsel versuchen, wie folgend:

foreach ($originalArray as $key => $part){ $sort[$key] = strtotime($part['date']); } array_multisort($sort, SORT_DESC, $originalArray);

+0

Und kann in diesem Fall den "date" - und "time" -Index des Arrays verketten. –