Comment trier mon numero en PHP

Fermé
loulou - 24 avril 2015 à 12:06
schweppes41 Messages postés 135 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 22 août 2016 - 24 avril 2015 à 15:53
Bonjour,

je veux savoir comment trier mon numero qui est sous forme 12/2014 j'ai deja ce code :
$query_mail = "SELECT * FROM archivdossier order by dossierId Asc"; // ORDER BY renvoi les données triées (ici par nom croissant)

alors mon numero est de type varchar mais il ne me trie pas mes numero juste il trie la premiere partie il prend en consideration juste le numero 12 mais pas 12/2014
j'attend vos reponse
merci d'avance
A voir également:

2 réponses

schweppes41 Messages postés 135 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 22 août 2016 26
24 avril 2015 à 15:06
Bonjour,

Il est tout à fait normal qu'il trie par ordre Asc car c'est un type VARCHAR, si tu veux qu'il trie ta date il faut mettre le type en Datetime !

Si tu veux rester en varchar, va falloir faire une fonction de trie en PHP !
0
merci pour ta reponse mais il faut que mon numero est de type varchar pour que je peux introduir dans ma formulaire un numero comme 12/2014 alors ca marche pas le type Datetime alors je veux qu'il reste en varchar mais je veux savoir comment je peut ecrire la fonctie de trie
merciii d'avance
0
schweppes41 Messages postés 135 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 22 août 2016 26
24 avril 2015 à 15:53
Essaye en adaptant avec ça :

$array = ["12/2014", "12/2007", "12/2008", "8/2010", "01/2011"];
$tmp_array = [];
$array_last = [];
foreach ($array as $key => $value) {
    array_push($tmp_array, date_create_from_format('m-Y', str_replace("/", '-', $value)));
}
usort($tmp_array, function($a, $b) {
    $ad = $a;
    $bd = $b;

    if ($ad == $bd) {
        return 0;
    }

    return $ad < $bd ? 1 : -1;
});

foreach ($tmp_array as $key => $value) {
    array_push($array_last, $value->format('m/Y'));
}

var_dump($array_last);
0