3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getCombinedSum($digits, $sum) { if(!is_int($digits) || !is_int($sum) || $digits<1 || $sum<0) { throw new InvalidArgumentException('Invalid numeric format'); } if($sum>9*$digits) { throw new LogicException('Sum out of range'); } if($digits==1) { return [$sum]; } $result = []; $digit = 0; while($digit<10 && $sum>0) { $sum = $sum - $digit; $result[] = array_merge([$digit], getCombinedSum($digits-1, $sum-$digit)); $digit++; } return $result; } var_dump(getCombinedSum(3, 4));

preferences:
34.43 ms | 402 KiB | 5 Q