Dieser Code läuft nicht richtig, aber es schlägt vor, was ich zu tun versucht:PHP Art 2D-Array von Index (nicht assoziative)
function sort_2d_by_index($a,$i) {
function cmp($x, $y) {
// Nested function, can't find $i
// (global $i defeats the purpose of passing an arg)
if ($x[$i] == $y[$i]) { return 0; }
return ($x[$i] < $y[$i]) ? -1 : 1;
}
usort($a,"cmp");
return $a;
}
Es hat ein viel besserer Weg, dies zu tun. Ich habe ksort()
, multisort()
und alle möglichen Sorten untersucht, bis ich irgendwie müde bin, alles zu sortieren.
Die Situation ist folgende: Ich habe ein 2-D-Array ...
array(
array(3,5,7),
array(2,6,8),
array(1,4,9)
);
habe ... und ich mag von einem Spaltenindex sortieren. Sprich, Spalte
[1]
, würde dieses Ergebnis geben:
array(
array(1,4,9),
array(3,5,7),
array(2,6,8)
);
jemand einen Link Hat (Ich bin sicher, dass dies vor gefragt wurde), oder könnte jemand sagen: „Sie foosort
müssen, auf jeden Fall“. Vielen Dank.
+1 für 'verwenden' aha das ist, was ich suche ich denke. – Ben
Danke auch für den Verschlusslink. Es stellt sich heraus, dass die Lösung "array_multisort" The One ist, bis PHP 5.3 weiter verbreitet ist. Ich hatte mir die Dokumentation angesehen, aber keine so gute Erklärung gefunden. Schade, dass ich nicht zweimal akzeptieren kann, ist diese Antwort großartig :) – Ben