array_multisort( )

soulerino

Mitglied
Hallo Leute,

ich habe da eine Frage:
Gibt es eine Funktion, die 3 Arrays sortieren kann?

Also array_multisort() sortiert max. 2 arrays in einem mehrdimensionalen Array (wenn ich das richtig verstanden habe).

Gibt es da eine Funktion, die das mit 3 arrays schafft? oder ist ein "Workarround" nötig?

gruß soulerino
 
Was meinst du mit 3 Arrays? Meinst
PHP:
$array1= array(); $array2=array(); $array3=array();
oder etwa
PHP:
$array = array(
    'array1' => array(
         'subarray1' => array(
               'a' => 1, 'b' => 2
         )
    )
);

Wo genau steht im Manual das array_multisort() nur 2 Arrays sortieren kann? Die Aussage lautet doch:

array_multisort() can be used to sort several arrays at once, or a multi-dimensional array by one or more dimensions.

Several arrays ist nicht two arrays. Der Funktions-Prototyp hat eine variable Argumentationsliste. Ich folgere daraus, das du beliebig viele (keine Ahnung was die Obergrenze ist) Arrays als Argument an array_multisort übergeben kannst.
 
Ich weiß, dass es da nicht steht. Das gleiche habe ich auch gelesen, aber bei dem Versuch 3 arrays zu übergeben funktioniert es einfach nicht.

Es sieht so aus, dass die Elemente eines Arrays wieder einzelne Arrays sind:
Code:
$arrayNr1 = array(
                       array(1, 2, 3, 4),
                       array(a, b, c, d),
                       array(z, y, x)
);
 
Hi,

zeig mal deinen bisherigen Versuch array_multisort zu verwenden. Denn normalerweise spuckt das dann eine Fehlermeldung aus, was nicht funktioniert. Ich kann zum Beispiel prima 3 oder mehr Arrays damit sortieren.
"Funktioniert nicht" ist eh immer so eine Sache hier. :)
 
PHP:
array_multisort($array1, SORT_ASC, $array2, SORT_ASC, $array3, SORT_ASC, $datensatz);

ob ich nun $array3, SORT_ASC mit drin stehn habe oder nicht macht keinen Unterschied.
 
Ich denke da fehlt je Array ein Parameter.

Sieh dir allein das Beispiel aus dem Manual an:
http://us.php.net/manual/en/function.array-multisort.php hat gesagt.:
PHP:
<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
 
Zurück