Alle Kombinationen ( Arrayliste ) ohne Wiederholung - PHP

Funktion

Dieser Funktion erstellt eine Liste alle möglichen Kombinationen beliebig langer Array, in dem sich keine Elemente wiederholen.

$arrayliste = array("Hans", "Peter", "Chris" );
tausch($arrayliste);


== Quellcode ==
function tausch($arrayliste, $einzelnewoerter = array( )) 
{
    if (empty($arrayliste)) 
    { 
        print join(' ', $einzelnewoerter) . PHP_EOL;
    }  
    else 
    {
        for ($i = count($arrayliste) - 1; $i >= 0; --$i) 
        {
             $neuearrayliste = $arrayliste;
             $neueeinzelnewoerter = $einzelnewoerter;
             list($foo) = array_splice($neuearrayliste, $i, 1);
             array_unshift($neueeinzelnewoerter, $foo);
             tausch($neuearrayliste, $neueeinzelnewoerter);
         }
    }
}

Ausgabe

Hans Peter Chris
Peter Hans Chris
Hans Chris Peter
Chris Hans Peter
Peter Chris Hans
Chris Peter Hans