Frage zur Arraysortierung

Kahmoon

Erfahrenes Mitglied
Tach beisammen,

irgendwie hab ich grad ein Problem Arrays zu sortieren.

Es werden Daten aus einem Textfile im folgenden Format ausgelesen.

0900, G01D22999, COMPLETED#
0900, G01D32299, COMPLETED#
0900, G01D23699, COMPLETED#
0355, G01D23699, COMPLETED#
0355, G01D23699, COMPLETED#
0340, G01D23699, COMPLETED#

Jeder Datensatz wird durch # getrennt. Das ganze splitte ich mit
PHP:
explode('#', $datensaetze);
So weit so gut. Explode liefert mir jetzt ein Array mit den gesplitteten Elementen. Jetzt folgt die Aufsplittung der Details mit einem weiteren explode nach "," getrennt werden.

Sprich in etwa so
PHP:
$details = expode(',', $datensatz);
$jobdetails = array(array($details[0], $details[1], $details[2]));
Dieses Array müsste jetzt nach dem ersten Wert (0900, 0355 etc.) sortiert werden aber irgendwie will das nicht oder ich bin einfach zu dämlich die ganzen Sortierfunktionen zu checken.... :-(

Vielleicht gibt es auch einen besseren Lösungsansatz!!?

Wäre dankbar für Hilfe.

Franky
 
PHP:
# Vergleichsfunktion
function vergleich($wert_a, $wert_b) 
{
    # Sortierung nach dem ersten Wert des Array (Index: 0)
    $a = $wert_a[0];
    $b = $wert_b[0];
    if ($a == $b) {
         return 0;
    }

    return ($a < $b) ? -1 : +1;
}
# Zu sortierendes, multidimensionales Array
$array = array(

    array('3', 'Hund',  4525),
    array('2', 'Katze', 3232),
    array('5', 'Maus',  1353),
    array('1', 'Pferd', 3357),
    array('4', 'Vogel', 9312)
);
# Aufruf von usort() mit dem Array, das sortiert werden soll und dem Namen der Vergleichsfunktion
usort($array, 'vergleich');
 
Danke. Klappt super. Genau das hab ich natürlich nicht versucht ;). Hab inzwischen auch noch eine Alternative gefunden. Danke
 
Zurück