phpOMS/Utils/Permutation.php
2016-03-16 22:33:44 +01:00

26 lines
628 B
PHP

<?php
namespace phpOMS\Utils;
class Permutation
{
// usage: permut(['a', 'b', 'c']);
public static function permut(array $toPermute, array $result = []) : array
{
$permutations = [];
if(empty($toPermute)){
$permutations[] = implode('', $result);
}else{
foreach($toPermute as $key => $val){
$newArr = $toPermute;
$newres = $result;
$newres[] = $val;
unset($newArr[$key]);
$permutations += permut($newArr, $newres);
}
}
return $permutations;
}
}