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