web-dev-qa-db-fra.com

Commenter les tableaux de dates en php?

Je suis nouveau à php, j'ai php date tableau 

[0] => 11-01-2012
[1] => 01-01-2014
[2] => 01-01-2015
[3] => 09-02-2013
[4] => 01-01-2013

Je veux trier le comme:

[0] => 11-01-2012
[1] => 01-01-2013
[2] => 09-02-2013
[3] => 01-01-2014
[4] => 01-01-2015

J'utilise asort mais ne fonctionne pas.

7
Mojilo

Comme les éléments de tableau sont des chaînes, vous devez les convertir en date, puis en comparant pour les trier. Le tableau usort() sort utilise une fonction personnalisée qui est une bonne fonction de tri pour ce cas.

$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);

Vérifier le résultat dans demo

18
d.coder

Essayez ci-dessous le 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>";
}
?>
2
Soni Vimal

out of the box utiliser la fonction de temps pour générer ts et trier

<?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

  ...
 ?>

ksort

1
donald123

Essaye ça,

<?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 );
?>

Va trier les dates dans l'ordre que vous voulez.

0
Blinkydamo