- var_dump: documentation ( source)
- join: documentation ( source)
<?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 = [];
for($digit=0; $digit<10 && $sum-$digit>0; $digit++)
{
$subsum = getCombinedSum($digits-1, $sum-$digit);
$result[] = $digit.join('', $subsum);
}
return $result;
}
var_dump(getCombinedSum(2, 1));