Sha256: 0dc45ada885824001685c2d7a4938fadf8718d1470bc4cbbd5e706e2ad8d8608

Contents?: true

Size: 684 Bytes

Versions: 127

Compression:

Stored size: 684 Bytes

Contents

<?php

function rebase(int $fromBase, array $digits, int $toBase)
{
    if (empty($digits) || $digits[0] == 0 || $fromBase <= 1 || $toBase <= 1) {
        return null;
    }

    $decTotal = 0;
    $ordered = array_reverse($digits);
    for ($i = 0; $i < count($digits); $i++) {
        $decTotal += $ordered[$i] * pow($fromBase, $i);
        if ($ordered[$i] >= $fromBase || $ordered[$i] < 0) {
            return null;
        }
    }

    $newArr = [];
    while ($decTotal >= $toBase) {
        $remainder = $decTotal % $toBase;
        $newArr[] = $remainder;
        $decTotal = floor($decTotal / $toBase);
    }
    $newArr[] = $decTotal;

    return array_reverse($newArr);
}

Version data entries

127 entries across 127 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.97 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.96 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.95 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.94 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.93 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.92 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.91 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.90 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.89 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.88 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.87 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.86 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.85 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.84 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.83 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.82 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.81 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.80 tracks/php/exercises/all-your-base/example.php
trackler-2.2.1.79 tracks/php/exercises/all-your-base/example.php