How to convert an array of digits to an integer add 1 and convert it back to an array of digits in PHP

1 Answer

0 votes
function convertArrayOfDigitsToIntNumber($arr) {
    $n = 0;
    
    foreach ($arr as $digit) {
        $n = $n * 10 + $digit;
    }
    
    return $n;
}

function convertIntNumberToArrayOfDigits(&$digits, $n) {
    $i = count($digits) - 1;
    
    while ($n > 0) {
        $digits[$i] = $n % 10;
        $n = (int)($n / 10);
        $i--;
    }
}

$arr = [9, 4, 6, 9];

$n = convertArrayOfDigitsToIntNumber($arr);
$n++;

convertIntNumberToArrayOfDigits($arr, $n);

echo "n = " . $n . "\n";
echo "[" . implode(", ", $arr) . "]\n";



/*
run:

n = 9470
[9, 4, 7, 0]

*/

 



answered May 6, 2024 by avibootz
...