人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: router
●カテゴリ:コンピュータ
✍キーワード:[php] 乱数 数字
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● jyouseki
●20ポイント

http://inazuma/content?TYPE=Frame&QUERY=PHP+%97%90%90%94%90%...

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

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://php.s3.to/man/function.mt-rand.html

mt_rand

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

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

◎質問者からの返答

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

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

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

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


2 ● mizuna_moge
●20ポイント

http://jp2.php.net/manual/ja/function.array-rand.php

PHP: array_rand - Manual

<?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桁の数字ができますが。

◎質問者からの返答

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


3 ● GEN111
●20ポイント

http://search.net-newbie.com/php/function.shuffle.html

$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桁になりますが。

◎質問者からの返答

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ