--- tablicy $ punktów ----pytania na tablicy Sortuj według czasu w php
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
)
)
Mam tablicę na powyżej chciałby uporządkować tę tablicę według czasu. Następnie użyłem kodu do sortowania, a wynik jest poprawny. Jednak jeśli zmieniłem kod time[$key] = $val[0]
na $time = $val[0]
, wynik jest nieprawidłowy.
Czy jest ktoś, kto może mi to wyjaśnić? Wielkie dzięki!
foreach($points as $key=>$val){
$time[$key] = $val[0];
array_multisort($time, SORT_ASC, $points);
}
Spróbuj tego testu: Usunięcie ostatniej linii ('array_mu ...'), skomentować go czy coś, a następnie wydrukować '$ oddać porównywalnych towarów po' foreach' pętli używając instrukcji 'time [$ key] = $ val [0]'. Następnie zmień linię na '$ time = $ val [0]' i zobacz, co '$ time' tworzy po pętli. – ladaghini
Dzieje się tak ze względu na sposób działania 'array_multisort'. Sortuje wiele tablic, a gdy tablica '$ time' zostanie posortowana, tablica' $ points' zostanie ponownie uporządkowana zgodnie z indeksami tablicy w '$ time'. "Array_multisort" powinno jednak pochodzić po 'foreach'. – cmbuckley