dポイントプレゼントキャンペーン実施中!

phpで5桁程度のユニークIDを生成したいと思っています。
5ケタでなくてもそれぐらいの桁数なら大丈夫です。
uniqid()という関数を使うとなると桁数が多すぎて扱いにくいので困っています。
なにかいい方法がありましたら是非教えてください。よろしくお願いします。

A 回答 (2件)

・乱数で作ってそれが現状で使われているIDかを保存してあるキー情報と見比べる。


・連番を使う。(数字のみでなくてアルファベットを使うなら文字コードで)


>uniqid()という関数を使うとなると桁数が多すぎて扱いにくいので困っています。
プログラム無いではなくて人間が視覚的認識して利用するのですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

面倒ですが、連番が良さそうですね…。

>プログラム無いではなくて人間が視覚的認識して利用するのですか?
人間がIDを見て判別するわけではありませんが、ファイルの名前につけたりなど、用途はいろいろ考えています。
単純に、桁数の違うユニークIDは作れないものかと思ったのもあります。

お礼日時:2009/05/14 11:59

No.1の方の意見に同意です。

意図が全くわかりません。「ユニークID」とおっしゃっていますが、DBレスで使うのであれば、テキストファイルを用意して、それを全行検索して、なければ書き込む、あれば作り直すという作業も発生しますが、それでよろしいのでしょうか。

とりあえず、こんな関数を作ってみたので、使ってみてください。
# 動作検証は一切していません。
# $arrayのところは適当に書き換えてください。

/** ランダム文字列生成関数 */
function makeRandomString(){
// ユニークIDのタネ
$array = array(0,1,・・・,9,a,b,・・・,z,A,B,・・・,Z);
// ユニークIDは5桁で作成
$keta = 5;
$result = "";
for($i=0;$i<$keta,$i++){
$result.= array_rand($array,1);
}
return $result;
}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ありがたいのですが、ランダムな5桁だとユニークとは言えないのでちょっとこれは扱えないですね。。。
すみません。

お礼日時:2009/05/14 11:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!