Например, есть массив 1,2,3,4,5,6
Нужно чтобы прочитал варианты: 1,2; 1,3; ... ; 1,6 потом 1,2,3; 1,2,4; 1,2,5, потом 1,3,4; 1,3,6 и т.д.
p.s. варианты перестановки учитывать не нужно, т.е. 1,2,3 == 1,3,2 == 3,1,2
как эту операцию обозвать можно.
print_r(AllPermutations(array('peter', 'paul', 'mary')));
function AllPermutations($InArray, $InProcessedArray = array())
{
$ReturnArray = array();
foreach($InArray as $Key=>$value)
{
$CopyArray = $InProcessedArray;
$CopyArray[$Key] = $value;
$TempArray = array_diff_key($InArray, $CopyArray);
if (count($TempArray) == 0)
{
$ReturnArray[] = $CopyArray;
}
else
{
$ReturnArray = array_merge($ReturnArray, AllPermutations($TempArray, $CopyArray));
}
}
return $ReturnArray;
}