Ich bin neu in PHP, ich habe PHP-Array
[0] => 11-01-2012
[1] => 01-01-2014
[2] => 01-01-2015
[3] => 09-02-2013
[4] => 01-01-2013
Ich möchte es sortieren wie:
[0] => 11-01-2012
[1] => 01-01-2013
[2] => 09-02-2013
[3] => 01-01-2014
[4] => 01-01-2015
Ich verwende asort
, arbeite aber nicht.
Da Array-Elemente eine Zeichenfolge sind, müssen Sie sie in Datum konvertieren und dann mit der Sortierung vergleichen. Das usort()
sort-Array verwendet eine benutzerdefinierte Funktion, die für diesen Fall eine gute Sortierfunktion ist.
$arr = array('11-01-2012', '01-01-2014', '01-01-2015', '09-02-2013', '01-01-2013');
function date_sort($a, $b) {
return strtotime($a) - strtotime($b);
}
usort($arr, "date_sort");
print_r($arr);
Ergebnis überprüfen in Demo
Versuchen Sie es unter dem Code:
<?php
$array[0] = '11-01-2012';
$array[1] = '01-01-2011';
$array[2] = '09-02-2013';
$array[3] = '01-01-2014';
$array[4] = '01-01-2015';
function cmp($a, $b)
{
$a = date('Y-m-d', strtotime($a));
$b = date('Y-m-d', strtotime($b));
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
usort($array, "cmp");
foreach ($array as $key => $value) {
echo "[$key]=> $value <br>";
}
?>
verwenden Sie die time-Funktion, um TS und Sortierung zu generieren
<?php
$out = array();
// $your_array is the example obove
foreach($your_array as $time) {
$out[strtotime($time)] = $time;
}
// now $out has ts-keys and you can handle it
...
?>
Versuche dies,
<?php
$array = [ '11-01-2012', '01-01-2014', '01-01-2015', '09-02-2013', '01-01-2013' ];
function sortFunction( $a, $b ) {
return strtotime($a) - strtotime($b);
}
usort($array, "sortFunction");
var_dump( $array );
?>
Sortiert die Daten in die gewünschte Reihenfolge.