Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Zufällige Werte aus einem Array auswählen

Sie befinden sich: Home > Php Tutorial > Zufällige Werte aus einem A...

Zufällige Werte aus einem Array auswählen


Eintrag am:  30.01.2023
Hits / Besucher:  1360
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

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.

Das Bild zeigt ein Flussdiagramm zur Funktionsweise der PHP-Funktion array_rand(). Es beginnt mit dem Aufruf von array_rand() und hat zwei Parameter: Ein Array als ersten Parameter und optional eine Anzahl als zweiten Parameter. Je nachdem, ob der zweite Parameter angegeben wird, gibt die Funktion entweder eine angegebene Anzahl von Werten aus oder nur einen einzelnen Wert.

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.

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.