2010-02-04 6 views
1

Voici mon tableau:Comment trier un PHP par date

Array ( 
    [0] => Array ([0] => content here [1] => 2010-02-04 01:25:34) 
    [1] => Array ([0] => content here [1] => 2010-02-04 04:51:37) 
    [2] => Array ([0] => content here [1] => 2010-02-04 04:52:31) 
    [3] => Array ([0] => content here [1] => 2010-02-04 05:50:48) 
    [4] => Array ([0] => content here [1] => 2010-02-04 03:25:34) 
    [5] => Array ([0] => content here [1] => 2010-02-04 05:39:33) 
    [6] => Array ([0] => content here [1] => 2010-02-04 03:25:34) 
    [7] => Array ([0] => content here [1] => 2010-02-04 07:07:09) 
    [8] => Array ([0] => content here [1] => 2010-02-04 07:07:23) 
    [9] => Array ([0] => content here [1] => 2010-02-04 08:51:18) 
) 

Comment puis-je trier par l'horodatage?

Répondre

7

Ou usort() avec strtotime():

function compare($e1, $e2) { 
    $t1 = strtotime($e1[1])); 
    $t2 = strtotime($e2[1])); 

    if($t1 == t2) { 
     return 0; 
    } 
    return ($t1 > $t2) ? 1 : -1; 
} 


usort($array, 'compare'); 
+0

Dans ce cas particulier, les chaînes de date sont formatées de sorte qu'une comparaison de base suffise soit avec des opérateurs de comparaison (par exemple '>') soit simplement 'return strcmp ($ e1 [1], $ e2 [1]); – salathe

+0

@salathe: Vous avez probablement raison. Je n'étais pas sûr de la comparsion des cordes. –

-1

Que diriez-vous de Bubble sort?

Cela signifie une boucle à travers chaque date, vérifiez si la précédente est plus grand, etc.

1

Utilisez usort() avec un cmp_function qui compare l'indice 1 de chacun des arguments passés.

0

array_multisort() Il est un peu méchant, mais la fonction puissante. Fondamentalement, vous devrez itérer à travers votre tableau, en retirant l'horodatage dans un nouveau tableau - maintien de l'association de clés. Ensuite, triez ce nouveau tableau tout en maintenant l'association de touches. Ensuite, placez votre tableau nouvellement trié et le tableau d'origine dans array_multisort() et votre tableau original sera trié pour avoir des clés dans le même ordre que votre tableau trié.

Clair comme de la boue? Les exemples sur cette page de documentation devraient aider.