array_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

array_randLiefert einen oder mehrere zufällige Schlüssel eines Arrays

Beschreibung

array_rand(array $array, int $num = 1): int|string|array

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.

Achtung

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.

Achtung

This function uses the global Mt19937 (“Mersenne Twister”) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937. Using any of these functions advances the sequence for all the other functions, regardless of scope.

Generating repeatable sequences by seeding mt_srand() or srand() with a known value will also yield repeatable output from this function.

Prefer using Random\Randomizer methods in all newly written code.

Parameter-Liste

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

Rückgabewerte

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.

Fehler/Exceptions

Wenn array leer ist oder num außerhalb des zulässigen Bereichs liegt, wird ein ValueError geworfen.

Changelog

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.

Beispiele

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";
?>

Siehe auch