Christian Seiler: assoziatives array sortieren

Beitrag lesen

Hallo mamue,

habe folgendes problem, das ich mit selfphp nicht lösen konnte:

Das passiert häufiger, ich verweise lieber aufs Manual (http://php3.de/manual/de/) als auf SELFPHP.

$cc = mysql_query($query_cc, $verbindung) or die(mysql_error());
$row_cc = mysql_fetch_assoc($cc);

im (assoziativen) array $row_cc sind nun alle zeilen der gefundenen datensätze mit ihren spalten enthalten;

Wie das? In $row_cc ist die *erste* Zeile der gefundenen Datensätze oder false, wenn keine Datensätze gefunden worden sind. Du musst Die Datensätze in einer Schleife einlesen:

$rows = array ();
while (($row_cc = mysql_fetch_assoc($cc))) {
    $rows[] = $row_cc;
}

Deine Aufgabenstellung ist aber etwas komplexer. Es bietet sich auf jeden Fall array_multisort an.

Zitat aus: http://php3.de/manual/en/function.array-multisort.php:
-------------------------------------------------------------------------------------------------
If you have an array that contains output from a SQL SELECT statment and you want to sort the array on a column, you have to create a separate array containing the values of that column like so:

//Get table output into $rows array
$result = mysql_query("SELECT field1, field2 from table");
while ($rows[] = mysql_fetch_array($result)) {}

//Sort on field2
foreach ($rows as $val) {
    $sortarray[] = $val['field2'];
}
array_multisort($rows, $sortarray);

//Now, $rows is sorted on field2

If anyone knows an easier way to do this, please let us know!
-------------------------------------------------------------------------------------------------

Ach ja, nur mal so nebenbei: Warum verwendest Du nicht die ORDER BY-Klausel in SQL? MySQL ist im Sortierten schneller als PHP...

Grüße,

Christian

--
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                      -- Albert Einstein