Ejemplo n.º 1
0
function getAllCombinations($numbers, $targetValue)
{
    if (count($numbers) == 1) {
        if (reset($numbers) == $targetValue) {
            return array(reset($numbers));
        } else {
            return array();
        }
    }
    $options = array();
    foreach ($numbers as $key => $number) {
        $newNumbers = $numbers;
        for ($i = 0; $i <= $key; $i++) {
            unset($newNumbers[$i]);
        }
        if ($targetValue - $number == 0) {
            $options[] = $number;
        }
        if ($targetValue - $number > 0) {
            $subOptions = getAllCombinations($newNumbers, $targetValue - $number);
            foreach ($subOptions as $subOption) {
                $options[] = $number . ',' . $subOption;
            }
        }
    }
    return $options;
}
Ejemplo n.º 2
0
function getUniqueCombinations($numberOfChosenElements, $setSize)
{
    getAllCombinations($numberOfChosenElements, $setSize);
}