現在の位置: ホーム> 最新記事一覧> phpでsrand()とarray_rand()を使用してarrayから要素をランダムに選択する方法は?

phpでsrand()とarray_rand()を使用してarrayから要素をランダムに選択する方法は?

gitbox 2025-08-25
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// コードのこの部分は、記事の内容とは何の関係もありません,テンプレートまたは初期化として使用できます</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"この記事を読んでください!\n"</span></span><span>;
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">time</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"現存在するのタイムスタンプ: <span class="hljs-subst">$timestamp</span></span></span><span>\n";
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
タイトル: 使い方 PHP 社内 srand() そして array_rand() 配列からの要素のランダム選択?
*/</span>

</span><span><span class="hljs-comment">// 存在する PHP 真ん中,如果你想从一个数组真ん中随机選択します一个または多个元素,利用可能 array_rand() 関数。</span></span><span>
</span><span><span class="hljs-comment">// そして srand() 乱数ジェネレーターの種子を設定するために使用されます(seed),从そして让随机数序列可预测(簡単にデバッグ)。</span></span><span>

</span><span><span class="hljs-comment">// 1. アレイの例</span></span><span>
</span><span><span class="hljs-variable">$fruits</span></span><span> = [</span><span><span class="hljs-string">"りんご"</span></span><span>, </span><span><span class="hljs-string">"バナナ"</span></span><span>, </span><span><span class="hljs-string">"オレンジ"</span></span><span>, </span><span><span class="hljs-string">"グレープ"</span></span><span>, </span><span><span class="hljs-string">"スイカ"</span></span><span>];

</span><span><span class="hljs-comment">// 2. 使用 srand() ランダムシードを設定します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>(</span><span><span class="hljs-number">123</span></span><span>); </span><span><span class="hljs-comment">// 種子は任意の整数にすることができます,同じ種子は毎回同じランダムシーケンスを生成します</span></span><span>

</span><span><span class="hljs-comment">// 3. 使用 array_rand() ランダムキーを取得します</span></span><span>
</span><span><span class="hljs-variable">$randomKey</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_rand</span></span><span>(</span><span><span class="hljs-variable">$fruits</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ランダムに選択された果物はそうです: "</span></span><span> . </span><span><span class="hljs-variable">$fruits</span></span><span>[</span><span><span class="hljs-variable">$randomKey</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;

</span><span><span class="hljs-comment">// 4. 複数の要素を選択する場合</span></span><span>
</span><span><span class="hljs-variable">$randomKeys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_rand</span></span><span>(</span><span><span class="hljs-variable">$fruits</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>); </span><span><span class="hljs-comment">// 選択します 3 ランダム要素</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"随机選択します的三种水果是: "</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$randomKeys</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fruits</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] . </span><span><span class="hljs-string">" "</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n"</span></span><span>;

</span><span><span class="hljs-comment">// 注意すべきこと:</span></span><span>
</span><span><span class="hljs-comment">// - array_rand() 配列のキーを返します,そして不是值本身。</span></span><span>
</span><span><span class="hljs-comment">// - 配列が非常に大きい場合、またはランダム性が強い場合,PHP 7.1+ 也利用可能 random_int() または array_rand() 協力します shuffle()。</span></span><span>
</span><span><span class="hljs-comment">// - srand() 必要ではありません,PHP ランダムシードはデフォルトで自動的に生成されます,但存在する调试または测试时利用可能它确保结果可重复。</span></span><span>

</span><span><span class="hljs-comment">// まとめ:</span></span><span>
</span><span><span class="hljs-comment">// 使用 srand() 乱数生成の再現性を制御できます,array_rand() 则方便从数组真ん中選択します随机元素。</span></span><span>
</span><span><span class="hljs-comment">// 組み合わせて使用​​します,可以存在する调试または测试场景下得到稳定且可预测的随机结果。</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>