ホームページ  >  記事  >  バックエンド開発  >  PHPのランダム関数の使い方

PHPのランダム関数の使い方

墨辰丷
墨辰丷オリジナル
2018-06-11 16:21:412440ブラウズ

この記事では主に PHP のランダム関数の使い方を紹介します。興味のある方はぜひ参考にしてください。

前に書いてあります

PHP 構文機能と関連関数ライブラリの従来の使用法では、大きな違いを生む効果は実際には得られないかもしれませんが、これらの方法を習得すれば、大きな違いを生むことができます。あなたの仕事や勉強に少しでも役立ちます!

2. はじめに

PHP は一般的なスクリプト言語です。その主な理由は、Web プログラムのほぼ 50% に PHP が含まれているためです。不完全な統計)。 PHP は開発用に豊富な関数と API インターフェイスを提供しているため、その強力な組み込み関数と拡張機能を使用するのが非常に便利です。

3. PHP ランダム関数

PHP ランダム関数には、主に rand、mt_rand、array_rand、およびランダムに「配置された」(シャッフルされた) 関数 shuffle および str_shuffle (uniqid) が含まれます。一意の ID を生成できます。

1. rand は乱数を生成します:

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
$count = strlen($base);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[rand(0,$count-1)];
}
echo $random;
?>

rand() 関数は、libc Generating を使用した乱数生成器です。乱数は一般に遅く、不確実な要素があるため、代わりに mt_rand 関数を使用することをお勧めします。

getrandmax() 関数は、rand 関数が生成できる最大の乱数 (私のシステムは 32767) を返すことができるため、rand 関数の 2 番目のパラメーターを設定するときは、getrandmax の戻り値を超えないようにしてください。

2. mt_rand は乱数を生成します:

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
$count = strlen($base);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[mt_rand(0,$count-1)];
}
echo $random;
?>

古い libc 乱数ジェネレーターの多くにはいくつかの不一致があります。プロパティがあり、非常に遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレーターを使用します。 mt_rand() 関数は非公式にこれを置き換えるために使用されます。この関数は、乱数生成器として » Mersenne Twister の既知の機能を使用しており、libc が提供する rand() よりも平均して 4 倍高速に乱数値を生成できます。開発中は rand の代わりに mt_rand 関数を使用することを強くお勧めします。

オプションのパラメータ min と max が指定されていない場合、mt_rand() は 0 から mt_getrandmax() までの擬似乱数を返します。たとえば、3 ~ 20 (両端を含む) の範囲の乱数が必要な場合は、mt_rand(3, 20) を使用します。

3. array_rand 関数

<?php
$base = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;);
 
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[array_rand($base)];
}
echo $random;
?>

array_rand は、mt_rand と似た、配列内のランダムなキー値を返します。 () 関数、その他は特別なものではなく、柔軟に使用してください。

4. シャッフル関数

<?php
$base = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;);
if(shuffle($base)){
 print_r($base);
}
?>

シャッフル関数は、配列の順序を破壊することです。これは、ここではランダム関数に配置されることを意味します。戻り値は bool 値で、元の変数を直接参照するのと同じです。

#5. str_shuffle 関数

##
<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
echo str_shuffle($base);
?>

#ここでの str_shuffle の関数は shuffle の関数と似ています。唯一の違いは、str_shuffle の元の文字列が変更されないことです。

6. uniqid 関数

<?php
echo uniqid();
//54f806528172f
?>

uniqid は、一意の文字列を生成できます。このアプリケーションの範囲は非常に広いです。 .

4. 概要

ランダム関数はあらゆる言語のほぼ基本的な関数であり、PHP のランダム関数のサポートも例外ではありません。 shuffle 、str_shuffle、uniqid 関数の基本的な使い方を実践的なアプリケーションと組み合わせて柔軟に使用できます。

要約

: 以上がこの記事の全内容です。皆様の学習にお役に立てれば幸いです。

関連する推奨事項:

php エラー処理の一般的なテクニック


php は Web サービス メソッドを実装します


#php 配列を元に動的にHTMLコードを作成する方法


# #

以上がPHPのランダム関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。