- var_dump: documentation ( source)
- array_merge: documentation ( source)
<?php
function getCombinedSum($digits, $sum)
{
if(!is_int($digits) || !is_int($sum) || $digits<1 || $sum<0)
{
throw 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; $digit++)
{
$result[] = array_merge([$digit], getCombinedSum($digits-1, $sum-$digit));
}
return $result;
}
var_dump(getCombinedSum(3, 4));