<?php
$bills = [500, 100];
$totalBills = [5, 5, 5, 5];
$rndCombination = [1, 5, 5, 5];
function nextCombination($total, $combination){
if($total == $combination){
return 'Максимальная комбинация.';
}
foreach($combination as $key => &$value){
if($value < $total[$key]){
$value++;
break;
}
else{
$value = 0;
if($combination[$key-1] < $total[$key-1]){
$combination[$key-1]++;
}
else{
$combination[$key-1] = 0;
$combination[$key-2]++;
}
break;
}
}
return $combination;
}
print_r(nextCombination
($totalBills, $rndCombination));
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokYmlsbHMgPSBbNTAwLCAxMDBdOwokdG90YWxCaWxscyA9IFs1LCA1LCA1LCA1XTsKJHJuZENvbWJpbmF0aW9uID0gWzEsIDUsIDUsIDVdOwoKa3Jzb3J0KCRybmRDb21iaW5hdGlvbik7CnByaW50X3IoJHJuZENvbWJpbmF0aW9uKTsKCmZ1bmN0aW9uIG5leHRDb21iaW5hdGlvbigkdG90YWwsICRjb21iaW5hdGlvbil7CglpZigkdG90YWwgPT0gJGNvbWJpbmF0aW9uKXsKCQlyZXR1cm4gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQutC+0LzQsdC40L3QsNGG0LjRjy4nOwoJfQoJa3Jzb3J0KCRjb21iaW5hdGlvbik7Cglmb3JlYWNoKCRjb21iaW5hdGlvbiBhcyAka2V5ID0+ICYkdmFsdWUpewoJCWlmKCR2YWx1ZSA8ICR0b3RhbFska2V5XSl7CgkJCSR2YWx1ZSsrOwoJCQlicmVhazsKCQl9CgkJZWxzZXsKCQkJJHZhbHVlID0gMDsKCQkJaWYoJGNvbWJpbmF0aW9uWyRrZXktMV0gPCAkdG90YWxbJGtleS0xXSl7CgkJCQkkY29tYmluYXRpb25bJGtleS0xXSsrOwkKCQkJfQoJCQllbHNlewoJCQkJJGNvbWJpbmF0aW9uWyRrZXktMV0gPSAwOwoJCQkJJGNvbWJpbmF0aW9uWyRrZXktMl0rKzsJCgkJCX0KCQkJYnJlYWs7CgkJfQoJfQoJa3NvcnQoJGNvbWJpbmF0aW9uKTsKCXJldHVybiAkY29tYmluYXRpb247Cn0KCnByaW50X3IobmV4dENvbWJpbmF0aW9uKCR0b3RhbEJpbGxzLCAkcm5kQ29tYmluYXRpb24pKTs=