У меня есть список времени игры, например, 13:05, 14:05, 19:10, 22:15 и т. д. Я использую многомерный массив и strcmp
с usort
для сортировки этих игр в правильном порядке от самой ранней до последней.
Игры сортируются, однако любая игра, которая начинается в 22:00, отображается перед любой другой игрой. Итак, мой текущий вид выглядит следующим образом:
Dodgers 7/29/16 10:05 PM
Angels 7/29/16 10:10 PM
A's 7/29/16 10:15 PM
Cubs 7/29/16 2:20 PM
Jays 7/29/16 7:05PM
Rays 7/29/16 7:15PM
Astros 7/29/16 8:05 PM
так далее
Я устраняю эту проблему уже несколько дней. Я попытался преобразовать свою строку даты, используя strtotime()
, но usort это совсем не нравится, и моя сортировка становится случайной. Я попытался отформатировать дату/время, используя дефис вместо косой черты, но ничего не изменилось. Я также «очистил» свою строку даты/времени от любых дополнительных символов. Вот мой код:
$array[$timedate] = $string;
// Multidimensional array of 'games'
$games[] = array('date' => $timedate,
'title' => $string);
// compare the dates and times
function cmp($a, $b)
{
return strcmp($a['date'], $b['date']);
}
// Sort the array
usort($games, "cmp");