Permutation Functions

$array = array(‘rajan’, ‘kumar’, ‘maharjan’);
function permutation($arr, $temp_string, &$collect) {
    if ($temp_string != “”) 
        $collect []= $temp_string;
    for ($i=0; $i<sizeof($arr);$i++) {
        $arrcopy = $arr;
        $elem = array_splice($arrcopy, $i, 1);
        if (sizeof($arrcopy) > 0) {
            permutation($arrcopy, $temp_string .” ” . $elem[0], $collect);
        } else {
            $collect []= $temp_string. ” ” . $elem[0];
        }   
    }   
}

$collect = array();
permutation($array, “”, $collect);
for($i=0;$i<count($collect);$i++){
    for($j=0;$j<=$i;$j++){
        $spaceCountI = explode(” “,$collect[$i]);
        $spaceCountJ = explode(” “,$collect[$j]);       
        if($spaceCountJ>=$spaceCountI){
            $temp = $collect[$j];
            $collect[$j] = $collect[$i];
            $collect[$i] = $temp;
            }
        }
    }
echo “<pre>”;
print_r(array_reverse($collect));
echo “</pre>”; 

Leave a Reply

Your email address will not be published. Required fields are marked *