<?php

function magic_inc($value, $direction) {
    if (!is_numeric($value) || $value == 0) {
        return 0;
    }

    $number = (float) $value;
    $sign = $number < 0 ? -1 : 1;
    $abs = abs($number);

    $exp = floor(log10($abs));
    $unit = pow(10, $exp);
    $digit = floor($abs / $unit);

    if ($direction === 'inc') {
        $digit = $sign > 0 ? $digit + 1 : $digit - 1;
    } else {
        $digit = $sign > 0 ? $digit - 1 : $digit + 1;
    }

    if ($digit === 10) {
        $result = pow(10, $exp + 1);
    } elseif ($digit === 0) {
        $result = 9 * pow(10, $exp - 1);
    } else {
        $result = $digit * $unit;
    }

    return $sign * $result;
}

function magic_inc(value, direction) {
    if (isNaN(value) || value == 0) {
        return 0;
    }

    let number = Number(value);
    let sign = number < 0 ? -1 : 1;
    let abs = Math.abs(number);

    let exp = Math.floor(Math.log10(abs));
    let unit = Math.pow(10, exp);
    let digit = Math.floor(abs / unit);

    if (direction === 'inc') {
        digit = sign > 0 ? digit + 1 : digit - 1;
    } else {
        digit = sign > 0 ? digit - 1 : digit + 1;
    }

    let result;
    if (digit === 10) {
        result = Math.pow(10, exp + 1);
    } else if (digit === 0) {
        result = 9 * Math.pow(10, exp - 1);
    } else {
        result = digit * unit;
    }

    return sign * result;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: