I'm trying to write a function that'll convert an integer to a string like this, but I can't figure out the logic... :(

1 = a
5 = e
27 = aa
28 = ab
etc...

Can anyone help? I'm really niffed that I can't wrap my head around how to write this... :(

Accepted Answer

Long list of them here:

/*
 * Convert an integer to a string of uppercase letters (A-Z, AA-ZZ, AAA-ZZZ, etc.)
 */
function num2alpha($n)
{
    for($r = ""; $n >= 0; $n = intval($n / 26) - 1)
        $r = chr($n%26 + 0x41) . $r;
    return $r;
}

/*
 * Convert a string of uppercase letters to an integer.
 */
function alpha2num($a)
{
    $l = strlen($a);
    $n = 0;
    for($i = 0; $i < $l; $i++)
        $n = $n*26 + ord($a[$i]) - 0x40;
    return $n-1;
}
Written by Kelly
This page was build to provide you fast access to the question and the direct accepted answer.
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki