(PHP 4, PHP 5, PHP 7, PHP 8)
array_rand — Liefert einen oder mehrere zufällige Schlüssel eines Arrays
Wählt einen oder mehrere Einträge aus einem Array aus und gibt den Schlüssel des zufälligen Eintrags bzw. die Schlüssel der zufälligen Einträge zurück.
Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht für kryptografische Zwecke verwendet werden oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein dürfen.
Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der Random\Randomizer mit der Random\Engine\Secure-Engine verwendet werden. Für einfache Anwendungsfälle bieten die Funktionen random_int() und random_bytes() eine bequeme und sichere API, die den CSPRNG des Betriebssystems verwendet.
array
Das Eingabe-Array; darf nicht leer sein
num
Gibt an, wie viele Einträge ausgewählt werden sollen; muss größer als
Null und kleiner oder gleich der Länge von array
sein
Wenn nur ein Eintrag ausgewählt wird, gibt array_rand() den Schlüssel eines zufälligen Eintrages zurück. Andernfalls wird ein Array mit den Schlüsseln der zufälligen Einträge zurückgegeben. Dies hat den Zweck, dass zufällige Schlüssel und auch Werte aus dem Array ausgewählt werden können. Wenn mehrere Schlüssel zurückgegeben werden, werden sie in der Reihenfolge zurückgegeben, in der sie im ursprünglichen Array vorliegen.
Wenn array
leer ist oder num
außerhalb des zulässigen Bereichs liegt, wird ein
ValueError geworfen.
Version | Beschreibung |
---|---|
8.0.0 |
Wenn num außerhalb des zulässigen Bereichs
liegt, wirft array_rand() nun einen
ValueError; zuvor wurde ein
E_WARNING ausgegeben, und die Funktion gab null
zurück.
|
8.0.0 |
Wenn array leer ist, wirft
array_rand() nun einen
ValueError; zuvor wurde ein
E_WARNING ausgegeben, und die Funktion gab null
zurück.
|
7.1.0 | Zur Erzeugung der Zufallszahlen kommt intern nun der » Mersenne-Primzahlen-Zufallsgenerator statt der vorherigen libc-rand-Funktion zum Einsatz. |
Beispiel #1 array_rand()-Beispiel
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>