[PHP]で重複しない乱数(半角数字のみ)を生成する方法を教えてください。出来れば8桁で作りたいのですが、8桁で不可能であれば多くなってもかまいません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/06/04 18:53:09
  • 終了:--

回答(3件)

id:jyouseki No.1

jyouseki回答回数5251ベストアンサー獲得回数382005/06/04 19:13:35

ポイント20pt

これらのページで勉強なさってください。

http://dobon.net/vb/dotnet/programing/random.html

乱数を生成する: .NET Tips: C#, VB.NET, Visual Studio

http://www.stackasterisk.jp/tech/php/php03_08.jsp

PHP��3���FPHP���p(�z��:foreach/array_walk/array_rand)

http://www.hyuki.com/tf/20041005215314

[結]2004年10月 - www.textfile.org

id:router

んっと、あんまり時間的余裕がないので、直接的な回答が欲しいです。

rand()を使って乱数を作るのは知ってますが、重複しないことが重要です。

ざっと目を通しましたが、書いてありそうなところを見つけることは出来ませんでした。

具体的な箇所を教えていただけると助かります。

2005/06/04 23:04:49
id:mizuna_moge No.2

mizuna_moge回答回数9ベストアンサー獲得回数02005/06/04 19:17:36

ポイント20pt

<?php

srand(time());

$num = array(0,1,2,3,4,5,6,7,8,9);

$rand_keys = array_rand($num, 8);


$res = ””;

foreach ($rand_keys as $key){

 $res .= $num[$key];

}


print $res . ”¥n”;

?>


でどうですか?srand()の種は適当に変えてもらえれば、重複しない8桁の数字ができますが。

id:router

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

2005/06/04 23:09:43
id:GEN111 No.3

GEN111回答回数472ベストアンサー獲得回数582005/06/04 19:52:11

ポイント20pt

$numarray = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ;

shuffle($numarray) ;

$tn = 0 ;

for ($n = 0; $n < 8; ++$n) {

$tn = $tn * 10 + array_shift($numarray) ;

}

print $tn ;


頭に 0 が来ると 7桁になりますが。

id:router

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

教えていただいた、2個のコードを見ていると、少し勘違いをしていた気がします。

jyousekiさんのご回答URLも、時間があるときによんでみたいと思います。

ありがとうございました。

2005/06/04 23:14:16

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません