Wie spreche ich ein mehrdimensionales Array an und wie sortiere ich es nach einem ganz bestimmten Wert?
mehrdimensionales Array
Einklappen
X
-
array_map_recursive() ist wohl das was ich suche, aber leider gibts die Funktion im Handbuch nicht.
Vllt könntest du mir dann die Funktion schreiben, mit der man in diesem Array nach der Größe sortiert:
PHP-Code:Array
(
[0] => Array
(
[name] => Hans
[groesse] => 180
)
[1] => Array
(
[name] => Martin
[groesse] => 178
)
[2] => Array
(
[name] => Tim
[groesse] => 183
)
)
Kommentar
-
Mein Problem liegt darin, dass ich noch nicht lange PHP mache und mich noch nie mit dem Sortieren von mehrdimensionalen Arrays beschäftigt habe.
Ich komme einfach nicht drauf, wie ich das oben geschriebene Array noch der Größe ordnen soll.
Nach dem Sortieren sollte dann das rauskommen:
PHP-Code:Array
(
[0] => Array
(
[name] => Tim
[groesse] => 183
)
[1] => Array
(
[name] => Hans
[groesse] => 180
)
[2] => Array
(
[name] => Martin
[groesse] => 178
)
)
Kommentar
-
Ich habe dich schon verstanden. Ich frage dich nur, ob es schon Ansätze in Form von Code gibt, da es hier in der Regel keine Fertiglösungen gibt. An welchem Punkt kommst du denn nicht weiter?
Ein Array kann man z.B. folgendermaßen durchlaufen:
PHP-Code:$array = array('la', 'le', 'lu');
foreach ($array as $key => $value)
{
echo $key . ' : ' . $value . '<br />';
}
Und zum Sortieren gibt's so einige built-in Funktionen wie z.B. sort().
Kommentar
-
Na da braucht es natürlich 2 Schleifen. Soweit hab ich das schon verstanden, aber ich komme nicht drauf, wie das funktionieren soll, dass es in der übergeordneten Ebene sortieren wird nach Werten die in der Ebene darunter liegen.
Ansätze im Code gibts leider keine, bin verzweifelt am Überlegen
Kommentar
-
Original geschrieben von Tarlar
Na da braucht es natürlich 2 Schleifen. Soweit hab ich das schon verstanden, aber ich komme nicht drauf, wie das funktionieren soll, dass es in der übergeordneten Ebene sortieren wird nach Werten die in der Ebene darunter liegen.
Ansätze im Code gibts leider keine, bin verzweifelt am Überlegen
http://de.wikipedia.org/wiki/Bubblesort
--> siehe PHP
Kommentar
-
Hast du dir denn mal den Link zur Funktion sort() im Handbuch angesehen? Dann wärst du nämlich eventuell auf array_multisort() gestoßen, das die Lösung deines Problems ist. Ganz ohne große Umstände.
Kommentar
-
Hab mir das schon angekuckt, aber nicht die Links unten.
Okay, bei multisort muss ich wohl Beispiel 4 anschauen, aber das was da geschrieben wird stimmt nicht. Das Beispiel sortiert die Bands genau anderst rum. Und wenn ich die SORT_ASC und SORT_DESC verändere passiert gar nichts.
Und bei der Anwendung auf mein Array kommt folgender Fehler:
Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in
Kommentar
-
Es ist auch nicht Beispiel 3. Es ist - um genau zu sein - keines dieser Beispiele. Die lässt du jetzt einfach mal links liegen und liest dir den Text mal durch. Dann kommst du auch selbst auf die Lösung (die ich dir übrigens bereits im meinem letzten Posting verraten habe), denn die ist wirklich ziemlich simpel.
Kommentar
Kommentar