<?php
function base26($value) {
$name = '';
for ($exponent = 0; pow(26, $exponent) <= $value; $exponent++) {
$digitWeight = intval(pow(26, $exponent));
$remainder = $value % intval(pow(26, $exponent + 1));
$digitValue = intval($remainder / $digitWeight);
if (0 == $digitValue) {
$digitValue = 26;
}
$ascii = 64 + $digitValue;
$name = chr($ascii) . $name;
echo sprintf("digitValue: %d, ascii: %d, value: %d, remainder: %d\n", $digitValue, $ascii, $value, $remainder);
$value -= $digitValue;
}
return $name;
}
for ($i = 1; $i < 28; $i++) { echo $i . "->" . base26($i) . "\n"; }
foreach (array(51, 52, 53, 77, 78, 79) as $i) { echo $i . "->" . base26($i) . "\n"; }
preferences:
50.46 ms | 402 KiB | 5 Q