des questions sur le tri de tableau par le temps en php

---array $points----

Array
    (
        [0] => Array
            (
                [0] => 2011-10-02 05:30:00
                [1] => 20
            )

        [1] => Array
            (
                [0] => 2011-10-04 09:30:00
                [1] => 12
            )

        [2] => Array
            (
                [0] => 2011-10-01 13:30:00
                [1] => 25
            )

        [3] => Array
            (
                [0] => 2011-10-03 02:30:00
                [1] => 31
            )

    )

J'ai un tableau au-dessus et souhaitez trier ce tableau selon le temps. Ensuite, j'ai utilisé le code suivant pour le tri et le résultat est correct. Cependant, si j'ai changé le code time[$key] = $val[0] à $time = $val[0], le résultat est mauvais.

Est-ce que quelqu'un peut-il m'expliquer cela? Merci beaucoup!

foreach($points as $key=>$val){

        $time[$key] = $val[0];

        array_multisort($time, SORT_ASC, $points);
    }
Essayez ce test: Supprimer la dernière ligne (array_mu...), en commentaire ou quelque chose, et ensuite, imprimez $time après la foreach boucle à l'aide de la déclaration time[$key] = $val[0]. Ensuite, modifiez la ligne de $time = $val[0] et de voir ce $time produit après la boucle.
C'est à cause de la façon dont array_multisort œuvres. Il trie plusieurs tableaux, et lorsque le $time tableau est trié, le $points tableau est re-commandé selon les indices de tableau dans $time. Le array_multisort doit venir après le foreach, cependant.

OriginalL'auteur Acubi | 2012-01-03