—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
)
)
I have an array at above and would like to sort this array by time. Then I used the code as following to sort and result is correct. However, if I changed the code time[$key] = $val[0] to $time = $val[0], the result is wrong.
Is there anyone can explain this to me? Many thanks!
foreach($points as $key=>$val){
$time[$key] = $val[0];
array_multisort($time, SORT_ASC, $points);
}
array_multisortsorts more than one array at once. However, it works on an array of columns, so theforeachloop is needed to get a column of the times. After building up this list, you can then perform the multisort. The$pointsarray is ordered according to the indices in$times, as per this example in the docs.However, you don’t need to perform the sort inside the
foreach, as that means the sort happens 4 times (in your example). It only needs to happen once: