[PHP-users 26968] Re: 英数字での連番の付け方
TAKAGI Masahiro
matakagi @ osk2.3web.ne.jp
2005年 9月 25日 (日) 16:38:40 JST
高木です。
At Sun, 25 Sep 2005 15:54:23 +0900,
milk_coffee_2004jp @ yahoo.co.jp wrote:
>
> 5桁の連番を英数字で生成していきたいのですが、
> どのようなロジックを組めば良いのか全く想像が付きません。
>
> 99998 → 99999 → A0000 → A0001
> AZZZY → AZZZZ → B0000 → B0001
> みたいな感じです。
>
この 2 つの条件って、なんとなく矛盾しているような気がするんですけど…。
もし、前者
> 99998 → 99999 → A0000 → A0001
が
99998 → 99999 → 9999A → 9999B → …
… → 9999Z → 999A0 → 999A1 → …
… → 9ZZZZ → A0000 → A0001 → …
となってもいいのならば、話は簡単です。数学的に言えば単なる 36進数
ですので、
http://www.php.net/manual/ja/function.base-convert.php
を使用すればいいのではないのでしょうか。
<?php
$from = base_convert("AZZZY", 36, 10);
for ($i = $from; $i < $from + 4; $i++) {
echo base_convert($i, 10, 36) . "\n";
}
?>
--
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp
PHP-users メーリングリストの案内