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