ホームページ >バックエンド開発 >PHPチュートリアル >PHP で乱数を生成するいくつかの方法
次の方法は私がよく使うもので、よりユーザーフレンドリーです
/** * 生成随机字符串 * @param int $length 要生成的随机字符串长度 * @param string $type 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符 * @return string */ function randCode($length = 5, $type = 0) { $arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|"); if ($type == 0) { array_pop($arr); $string = implode("", $arr); } else if ($type == "-1") { $string = implode("", $arr); } else { $string = $arr[$type]; } $count = strlen($string) - 1; for ($i = 0; $i < $length; $i++) { $str[$i] = $string[rand(0, $count)]; $code .= $str[$i]; } return $code; }
固定長の乱数を生成します:
function generate_code($length = 4) { return rand(pow(10,($length-1)), pow(10,$length)-1); }
以下は上記と同じ効果がありますが、書き方が異なります。
function generate_code($length = 4) { $min = pow(10 , ($length - 1)); $max = pow(10, $length) - 1; return rand($min, $max); }
例:
echo generate_code(5); //输出结果: 56482
もう一度更新すると、番号と順序が変わります。
上記の 2 つのコードは比較的単純ですが、数値を生成することしかできません。コードの単純さを追求する場合は、
$arr=range(1,10); shuffle($arr); foreach($arr as $values) { echo $values.","; } //输出结果:10,5,7,8,6,2,9,4,1,3,1を使用できます。これは主に、2 つのパラメーター範囲で乱数を生成する PHP の組み込み関数 range() によって生成されます。また、複数の数値セットを生成できます。これはより厳密で、すべてがメソッドに配置されるわけではありませんが、ニーズに応じて使用できます。
$arr=array(); while(count($arr)<10) { $arr[]=rand(1,10); $arr=array_unique($arr); } echo implode(" ",$arr);他の生成方法についてはここでは詳しく説明しません。開発プロセス中に、必要に応じて独自の乱数関数を作成できることだけを覚えておいてください。