Shawn McKenzie wrote: > tedd wrote: >> Hi gang: >> >> Anyone have/know a routine that will sort an array of times? >> >> For example, a function that would take an array like this: >> >> time[0] ~ '1:30pm' >> time[1] ~ '7:30am' >> time[2] ~ '12:30pm' >> >> and order it to: >> >> time[0] ~ '7:30am' >> time[1] ~ '12:30pm' >> time[2] ~ '1:30pm' >> >> >> Cheers, >> >> tedd >> >> > > Not tested: > > function time_sort($a, $b) > { > if (strtotime($a) == strtotime($b)) { > return 0; > } > return (strtotime($a) < strtotime($b) ? -1 : 1; > } > > usort($time, "time_sort"); > Well, I just thought, since the strtotime() uses the current timestamp to calculate the new timestamp, if you only give it a time then the returned timestamp is today's date with the new time you passed. If you had a large array and the callback started at 23:59:59 then you could end up with some times from the date it started and some from the next day, which of course would not be sorted correctly with respect to times only. So, this might be better (not tested): function time_sort($a, $b) { static $now = time(); if (strtotime($a, $now) == strtotime($b, $now)) { return 0; } return (strtotime($a, $now) < strtotime($b, $now) ? -1 : 1; } -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php