PHP array_rand() ist eine Funktion, die zufällige Werte aus einem Array auswählt und als Ergebnis zurückgibt.
Die Syntax der PHP array_rand()-Funktion ist:
array_rand (array $array, (int) $Anzahl): int|string|array
Die Syntax besteht aus dem Array als erstem Parameter und optional kann noch eine Anzahl anzugebender Werte als zweiter Parameter angegeben werden. Wenn keine Anzahl angegeben wird, wird standardmäßig ein Wert zurückgegeben.
Beispiel 1:
<?php
$array = array(1, 2, 3, 4, 5);
$zufaelliger_wert = array_rand($array);
var_dump($zufaelliger_wert);
?>
Ausgabe:
int(1)
Erklärung:
Der gegebene PHP-Code erzeugt ein Array mit den Werten 1, 2, 3, 4 und 5 und wählt anschließend einen zufälligen Wert aus diesem Array aus. Dies geschieht mithilfe der Funktion array_rand(), welche einen zufälligen Index des Arrays als Rückgabewert liefert. Der Rückgabewert wird anschließend mit der Funktion var_dump() ausgegeben, welche die Datentypen und Werte der übergebenen Variablen anzeigt.
Beispiel 2:
<?php
$array = array("A", "K", "C", "D", "E");
$zufaelliger_wert = array_rand($array, 3);
var_dump($zufaelliger_wert);
?>
Ausgabe:
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(4)
}
Erklärung:
Der gegebene PHP-Code erzeugt ein Array mit den Werten 1, 2, 3, 4 und 5 und wählt anschließend einen zufälligen Wert aus diesem Array aus. Dies geschieht mithilfe der Funktion array_rand(), welche einen zufälligen Index des Arrays als Rückgabewert liefert. Der Rückgabewert wird anschließend mit der Funktion var_dump() ausgegeben, welche die Datentypen und Werte der übergebenen Variablen anzeigt.
Beispiel 3:
<?php
$array = array(1, 2, 3, 4, 5, 6, 7);
$zufaelliger_wert = array_rand($array, 4);
var_dump($zufaelliger_wert);
?>
Ausgabe:
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(6)
}
Erklärung:
Der oben gezeigte PHP-Code erstellt ein Array mit den Werten 1 bis 7 und wählt dann random vier Werte daraus aus. Dazu wird die Funktion array_rand verwendet. Diese Funktion nimmt zwei Argumente an, das erste Argument ist das Array, aus dem die zufälligen Werte ausgewählt werden sollen und das zweite Argument gibt an, wie viele Werte aus dem Array ausgewählt werden sollen. In dem oben gezeigten Beispiel sind die Argumente $array und 4. Die Funktion array_rand gibt dann ein Array mit den ausgewählten Werten zurück, das wird mit der Funktion var_dump ausgegeben.
Beispiel 4:
<?php
function array_rand_example($array) {
$randomCountMax= (count($array)-1);
$randomCount=rand(1,$randomCountMax);
if($randomCount==1){
$randomArray = array(array_rand($array, $randomCount));
} else {
$randomArray = array_rand($array, $randomCount);
}
$randomItems = [];
foreach ($randomArray as $index) {
array_push($randomItems, $array[$index]);
}
return [count($randomItems), $randomItems];
}
$myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
list($count, $randomItems) = array_rand_example($myArray);
echo "Anzahl der zufälligen Elemente: $count \\n";
echo "Zufällige Elemente: " . implode(', ', $randomItems);
?>
Ausgabe:
Anzahl der zufälligen Elemente: 3
Zufällige Elemente: 2, 3, 7
Erläuterung:
Dieser PHP-Code implementiert eine eigene Funktion mit dem Namen: array_rand_example(), um ein Array mit zufälligen Elementen zurückzugeben. Die Funktion akzeptiert als Parameter ein Array, aus dem die zufälligen Elemente extrahiert werden sollen.
Zunächst wird eine Variable $randomCountMax gesetzt, die die Anzahl der Elemente im Array abbildet. Hierzu wird die Funktion count() verwendet. Der Wert wird daraufhin mit der Funktion rand() verwendet, um eine zufällige Anzahl zwischen 1 und der maximalen Anzahl an Elementen zu erhalten. Wenn es nur ein Element gibt, wird es mit der Funktion array_rand() in ein Array gepackt, andernfalls werden mehrere Elemente mit array_rand() extrahiert und anschließend in einem Array gespeichert.
Danach wird ein leeres Array namens $randomItems erstellt. In einer foreach-Schleife wird dann für jedes Element von $randomArray das zugehörige Array-Element des übergebenen Arrays hinzugefügt.
Zuletzt wird ein Array zurückgegeben, das die Anzahl der zufälligen Elemente und die tatsächlichen zufälligen Elemente enthält.
In diesem Beispiel wird das Array $myArray mit den Zahlen 1 bis 10 initialisiert und anschließend an die Funktion array_rand_example() übergeben. Die Funktion gibt dann die Anzahl der zufälligen Elemente und die tatsächlichen zufälligen Elemente aus.
Alles über die PHP Funktion array_rand()
Die PHP Funktion array_rand() ist eine sehr nützliche Funktion, die es ermöglicht, einen oder mehrere zufällig generierte Schlüssel aus einem Array abzurufen. Erfahren Sie mehr über die Funktion, indem Sie sich die folgenden Fragen ansehen.
-
Was bedeutet die PHP Funktion array_rand()?
- Die PHP Funktion array_rand() liefert ein oder mehrere zufällig generierte Schlüssel aus einem Array zurück. Diese Schlüssel können verwendet werden, um einen zufällig ausgewählten Wert aus dem Array abzurufen.
-
Wie funktioniert array_rand()?
- array_rand() nimmt ein Array als Parameter und wählt ein oder mehrere Schlüssel aus dem Array zufällig aus. Es gibt zwei Parameter, mit denen die Funktion angepasst werden kann. Der erste Parameter ist das Daten-Array. Beim zweite Parameter gibt an, wie viele Schlüssel zurückgegeben werden sollen.
-
Welche Datentypen können als Parameter für die Funktion verwendet werden?
- array_rand() akzeptiert nur Arrays als Parameter und ein Integer für die Anzahl der Return-Schlüssel.
-
Welche Art von Schlüsseln werden von array_rand() zurückgegeben?
- array_rand() gibt Schlüssel vom Typ integer oder string zurück, je nachdem, welche Schlüssel im Array vorhanden sind.
-
Kann array_rand() auch mehrere Schlüssel zurückgeben?
- Ja, mit dem ersten Parameter kann angegeben werden, wie viele Schlüssel zurückgegeben werden sollen. Wenn der Wert 0 ist, wird ein Schlüssel zurückgegeben, wenn der Wert 1 ist, werden mehrere Schlüssel zurückgegeben.
-
Was passiert, wenn array_rand() keine Schlüssel findet?
-
Wenn array_rand() keine Schlüssel im Array findet, gibt die Funktion ein Fehler:
Fatal error: Uncaught ValueError: array_rand(): Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array) in ...
der Stufe E_WARNING und NULL wird zurückgegeben. Die passiert zum Beispiel, wenn im Übergabe-Array weniger Element enthalten sind, als Sie im zweiten Parameter angegeben haben.
-
Welche Rückgabewerte hat array_rand()?
- array_rand() kann entweder ein oder mehrere Schlüssel im angegebenen Array zurückgeben
-
Kann man array_rand() auch verwenden, um zufällige Werte aus einem Array zu erhalten?
- Ja, array_rand() kann verwendet werden, um einen oder mehrere zufällig ausgewählte Werte aus einem Array zu erhalten. Dazu müssen die zurückgegebenen Schlüssel verwendet werden, um den Wert aus dem Array abzurufen.
-
Gibt es Alternativen zu array_rand()?
-
Inwiefern unterscheidet sich array_rand() von anderen Array-Funktionen?
- array_rand() unterscheidet sich von anderen Array-Funktionen dadurch, dass es zufällig generierte Schlüssel zurückgibt, die verwendet werden können, um zufällig ausgewählte Werte aus einem Array abzurufen.
-
Kann array_rand() ein Multi-Dimensionales Array verarbeiten?
-
Nein, die PHP Funktion array_rand() kann nur ein eindimensionales Array verarbeiten. Es eine Möglichkeit, dies dennoch zu machen ein Multi-Dimensionales Array mit der PHP Funktion array_rand() zu verarbeiten. Dazu müssen Sie eine eigene Funktion schreiben, die das Array in ein eindimensionales Array umwandelt und anschließend die array_rand() Funktion aufruft.
Beispiel:
<?php
/** Funktion zum Umwandeln eines multi-dimensionalen Arrays in ein eindimensionales Array */
function flattenArray($array) {
$flattenedArray = [];
array_walk_recursive($array, function($item) use (&$flattenedArray) {
$flattenedArray[] = $item;
});
return $flattenedArray;
}
/** Beispiel Multi-Dimensionales Array */
$exampleArray = [[1,2,3], [4,5,6], [7,8,9]];
/** Beispiel-Array in ein eindimensionales Array umwandeln */
$flattenedArray = flattenArray($exampleArray);
/** Random Element aus dem eindimensionalen Array auswählen */
$randomElement = array_rand($flattenedArray);
/** Ausgewähltes Element ausgeben */
echo $flattenedArray[$randomElement];
?>
Erklärung: In diesem Beispiel wird eine Funktion namens flattenArray() definiert, die es ermöglicht, ein multi-dimensionales Array in ein eindimensionales Array zu transformieren. Hierzu wird die PHP-Funktion array_walk_recursive() aufgerufen, um das multi-dimensionale Array zu durchlaufen und jedes Element in ein eindimensionales Array zu kopieren. Nachdem das multi-dimensionale Array in ein eindimensionales Array transformiert wurde, wird die PHP-Funktion array_rand() aufgerufen, um ein zufälliges Element auszuwählen. Schließlich wird das ausgewählte Element ausgegeben, mit echo.