function incrementByOne($digits) {
$carry = 1;
for ($i = count($digits) - 1; $i >= 0; $i--) {
$digits[$i] += $carry;
if ($digits[$i] == 10) {
$digits[$i] = 0;
$carry = 1;
} else {
$carry = 0;
break;
}
}
if ($carry == 1) {
array_unshift($digits, 1); // Add 1 at the beginning if there's still a carry
}
return $digits;
}
$digits = [9, 9, 9];
$incremented = incrementByOne($digits);
echo "Result: ";
foreach ($incremented as $digit) {
echo $digit . " ";
}
echo PHP_EOL;
/*
run:
Result: 1 0 0 0
*/