[GastForen Programmierung/Entwicklung PHP und MySQL Mehrdimensionales Array sortieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Mehrdimensionales Array sortieren

Wolfgang Reszel
Beiträge gesamt: 4170

31. Jan 2003, 13:46
Beitrag # 1 von 2
Bewertung:
(529 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo wie kann ich folgendes Array z.B. nach Datum sortieren?

array(2) {
[0]=>
array(6) {
["DATUM"]=>
string(10) "2001-11-01"
["TEXT"]=>
string(508) "blublblub"
}
[1]=>
array(6) {
["DATUM"]=>
string(10) "2002-13-14"
["TEXT"]=>
}
}

herauskommen soll:

array(2) {
[0]=>
array(6) {
["DATUM"]=>
string(10) "2002-13-14"
["TEXT"]=>
}
[1]=>
array(6) {
["DATUM"]=>
string(10) "2001-11-01"
["TEXT"]=>
string(508) "blublblub"
}
}


Wolfgang
X

Mehrdimensionales Array sortieren

Wolfgang Reszel
Beiträge gesamt: 4170

3. Feb 2003, 08:26
Beitrag # 2 von 2
Beitrag ID: #23541
Bewertung:
(529 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

hab's selber gefunden.

function sort_multiarray (&$array, $column=0, $order=SORT_ASC, $first=0, $last= -2) {
// $array  - the array to be sorted
// $column - index (column) on which to sort
// can be a string if using an associative array
// $order - SORT_ASC (default) for ascending or SORT_DESC for descending
// $first - start index (row) for partial array sort
// $last - stop index (row) for partial array sort

if($last == -2) $last = count($array) - 1;
if($last > $first) {
$alpha = $first;
$omega = $last;
$guess = $array[$alpha][$column];
while($omega >= $alpha) {
if($order == SORT_ASC) {
while($array[$alpha][$column] < $guess) $alpha++;
while($array[$omega][$column] > $guess) $omega--;
} else {
while($array[$alpha][$column] > $guess) $alpha++;
while($array[$omega][$column] < $guess) $omega--;
}
if($alpha > $omega) break;
$temporary = $array[$alpha];
$array[$alpha++] = $array[$omega];
$array[$omega--] = $temporary;
}
sort_multiarray ($array, $column, $order, $first, $omega);
sort_multiarray ($array, $column, $order, $alpha, $last);
}
}



Wolfgang


als Antwort auf: [#23376]