Page 1 of 1
incrementing alphanumeric values
Posted: Mon Dec 07, 2009 1:58 pm
by incubi
Hello,
I need some, maybe a lot of help incrementing alphanumeric values. For example,
00000000000A
00000000000B
00000000000C
00000000000D and so on
Then
000000000001 through 9
Then
0000000000AA
0000000000AB
0000000000AC
0000000000AD
All the way through 0000000000A9
And continue this pattern until all possible combinations are used.
I know it’s a lot 36 ^12 I think but I will only be assigning them in 1k chunks.
Can you help?
Thanks
Re: incrementing alphanumeric values
Posted: Mon Dec 07, 2009 7:38 pm
by daedalus__
you mean a-z then 1-9?
id really like to see the solution for this when you find one, please remember to come back and post.
i know that there are some classes out there to simulate enumerations in php you may be able to dig those up and use those.
but if you are trying to create a base (36?) number system. aside from using lists i wouldn't know where to start.
Re: incrementing alphanumeric values
Posted: Mon Dec 07, 2009 7:39 pm
by daedalus__
ha, sexy, look what i found:
http://en.wikipedia.org/wiki/Base_36
its called hexatridecimal.
<?php
$base_36 = "ZAQFG"; //Sample Base 36 Number
$decimal = "7654321"; //Sample Decimal Number
echo base_convert($base_36,36,10); //Outputs $base_36 converted to decimal
echo base_convert($decimal,10,36); //Outputs $decimal converted to base 36
?>
i'd say convert to base 10 and back again.
what are you using this for?
Re: incrementing alphanumeric values
Posted: Tue Dec 08, 2009 9:09 am
by incubi
Hi, daedalus__
In our case the alpha needs to be caps but that’s not a big deal. We want to use this numbering format as serial numbers for parts.
Also, being PHP incrementing in alpha its just.
Code: Select all
for($x="A"; $x < "ZZ"; $x++)
print $x."\r";
So if I’m doing single digits it’s easy but I get lost when I need to build the 12 digit string starting with the leading zeros. I’m sure I could just start by doing this
Code: Select all
for($x="A"; $x < "ZZZZZZZZZZZZ"; $x++)
print $x."\r";
Over the course of 20 years or so it would cover all the alpha but what do I do when its time to put in 0-9?
Or more realistically if I needed to start the serial number at the point where there are numbers in the string.
Base 36 counting is I’m sure the right starting point but for example on the right most digit once I’ve counted A – 9 how do I move that count one place to the left and start the count again?
Thanks,
incubi