Ich habe eine Liste der Spielzeiten, also sagen 1:05 PM, 2:05 PM, 7:10 PM, 10:15 PM usw. Ich verwende ein mehrdimensionales Array und strcmp
mit usort
, um diese Spiele zu sortieren die richtige Reihenfolge von frühestens bis spät.usort in PHP falsche Ergebnisse
Die Spiele werden sortiert, aber jedes Spiel, das um 22:00 Uhr beginnt, wird vor einem der anderen Spiele aufgeführt. So sieht meine aktuelle Art wie folgt aus:
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 dies nun seit Tagen zur Fehlerbehebung. Ich habe versucht, meine Datumszeichenkette unter Verwendung strtotime()
umzuwandeln, aber usort mag dieses überhaupt nicht und meine Sorte wird zufällig. Ich habe versucht, das Datum/die Zeit mit Bindestrichen anstelle von Schrägstrichen zu formatieren, aber nichts ändert sich. Ich habe meine Datum/Uhrzeit-Zeichenfolge für zusätzliche Zeichen "geschrubbt". Hier ist mein 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");
Ich versuchte Art() zu verwenden und es warf einen Fehler, aber es hat mir denken, dass usort die falsche Sortiermethode war. Also erkannte ich, dass ksort (das nach dem Schlüssel eines mehrdimensionalen Arrays sortiert) den Trick machen würde, und das tat es auch. Danke, dass du meinen Fokus änderst. – xar86413
Gute Idee mit Ksort. Ich habe es in meiner Antwort ein wenig ausgearbeitet. –