Ulli: Permutation von Arrays

Beitrag lesen

Hallo,

ich grübel gerade über folgendem Problem.
Ich habe ein Array:
Array(
  [0] => data1,
  [1] => data2,
  [2] => data3
)

wobei data irgendwas sein kann. Ich möchte dieses Array in jenes umwandeln:
Array(
  [0] => Array (
           [0] => data1,
           [1] => data2
         )
  [1] => Array (
           [0] => data1,
           [1] => data3
         )
  [2] => Array (
           [0] => data2,
           [1] => data3
         )
)

Also eine Art Permutation über den Arrayelementen erzeugen. Ok, bei einer großen Anzahl an ursprünglichen Elementen ist das extrem rechenaufwendig aber das kann man ja abfangen ...

Hier mal eine Idee dazu:

function permuteArray($array)
{
    switch(count($array)) {
        case 2:
            return array($array[0],$array[1]);
            break;
        case (count($array) > 2):
            return array($array[0],permuteArray(array_slice($array,1)));
            break;
        case (count($array) < 2):
            return $array;
            break;
    }
}

Leider ( oder wie programmiert =) ) liefert mir das Teil folgendes:
Array(
  [0] => data1,
  [1] => Array(
           [0] => data1,
           [1] => data3
         )
)

Das zweite Element des Ergebnis sieht ja von der Sache her schon ganz gut aus ...
nur leider fehlt mit gerade die Idee, wie ich weiter gehen könnte. Wenn jmd eine hat, dann immer her damit.

Grüße, Ulli