[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 メーリングリストの案内