J'ai une liste de temps de jeu, donc disons 13:05, 14:05, 19:10, 10:15 PM etc. J'utilise un tableau multidimensionnel et strcmp
avec usort
pour trier ces jeux dans l'ordre correct du plus tôt au plus tard. Les jeux sont triés, mais tous les jeux qui commencent à 22h sont listés avant l'un des autres jeux. Donc, mon genre actuel ressemble à ceci:usort en PHP résultats incorrects
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
etc
Ihave été dépanne pendant des jours maintenant. J'ai essayé de convertir ma chaîne de date en utilisant strtotime()
, mais usort ne l'aime pas du tout et mon sort devient aléatoire. J'ai essayé de formater la date et l'heure en utilisant des tirets au lieu de barres obliques, mais rien ne change. J'ai également nettoyé ma chaîne de date/heure pour tous les caractères supplémentaires. Voici mon code:
$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");
J'ai essayé d'utiliser sort() et il a jeté une erreur, mais il m'a fait penser que usort était la mauvaise méthode de tri. J'ai donc réalisé que ksort (qui trie par clé d'un tableau multidimensionnel) ferait l'affaire, et c'est ce qu'il a fait. Merci d'avoir changé ma concentration. – xar86413
Bonne idée avec ksort. Je l'ai un peu précisé dans ma réponse. –