• ベストアンサー

PHPでユニークIDを作る

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

質問者が選んだベストアンサー

  • ベストアンサー
  • tom951
  • ベストアンサー率30% (29/96)
回答No.1

・乱数で作ってそれが現状で使われているIDかを保存してあるキー情報と見比べる。 ・連番を使う。(数字のみでなくてアルファベットを使うなら文字コードで) >uniqid()という関数を使うとなると桁数が多すぎて扱いにくいので困っています。 プログラム無いではなくて人間が視覚的認識して利用するのですか?

pop4532
質問者

お礼

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

その他の回答 (1)

noname#87667
noname#87667
回答No.2

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; }

pop4532
質問者

お礼

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

関連するQ&A