guenter024
Erfahrenes Mitglied
Hallo PHP-Freunde,
Stehe vor einem Sortierungsproblem:
Folgendes Mehrdimensionales Array als Beispiel, welches meine vorhandene Struktur widerspiegelt:
Die vorderen Schlüssel sind Artikelnummern, daher auch unique, jedoch nicht für die Sortierung gewünscht.
Sortiert werden soll nach dem ersten key [0] in den subarrays (also hier 1, 2, 3).
Habe nun versucht, einfach den Wert im Schlüssel [0] zu ändern und dann mit usort aus den Beispielen von php.net neu zu sortieren.
Allerdings wird hier nun auch der vordere Schlüssel (also die Artikelnummer) neu indexiert.
Wie kann ich dies verhindern?
Ich hoffe wieder mal die Hilfe von den Profis
Stehe vor einem Sortierungsproblem:
Folgendes Mehrdimensionales Array als Beispiel, welches meine vorhandene Struktur widerspiegelt:
Code:
Array
(
[1952] => Array
(
[0] => 1
[1] => Apfel
[2] => rot
)
[3762] => Array
(
[0] => 2
[1] => Birne
[2] => grün
)
[4378] => Array
(
[0] => 3
[1] => Banane
[2] => gelb
)
)
Die vorderen Schlüssel sind Artikelnummern, daher auch unique, jedoch nicht für die Sortierung gewünscht.
Sortiert werden soll nach dem ersten key [0] in den subarrays (also hier 1, 2, 3).
Habe nun versucht, einfach den Wert im Schlüssel [0] zu ändern und dann mit usort aus den Beispielen von php.net neu zu sortieren.
PHP:
// Werte ändern
$_SESSION['array']['1952'][0] = 2;
$_SESSION['array']['3762'][0] = 1;
// Sortieren
function build_sorter($key) {
return function ($a, $b) use ($key) {
return strnatcmp($a[$key], $b[$key]);
};
}
usort($_SESSION['array'], build_sorter(0));
Allerdings wird hier nun auch der vordere Schlüssel (also die Artikelnummer) neu indexiert.
Wie kann ich dies verhindern?
Ich hoffe wieder mal die Hilfe von den Profis
