Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie zufällig mehrere Elemente aus einem Array in PHP

So erhalten Sie zufällig mehrere Elemente aus einem Array in PHP

王林
王林Original
2023-07-07 11:14:381143Durchsuche

So rufen Sie in PHP zufällig mehrere Elemente aus einem Array ab

Bei der PHP-Entwicklung stoßen wir häufig auf Szenarien, in denen wir mehrere Elemente zufällig aus einem Array abrufen müssen. Bei der Spieleentwicklung müssen Sie beispielsweise zufällig mehrere Glückspreise auswählen, oder bei der zufälligen Anzeige empfohlener Inhalte müssen Sie einige zufällig aus einem Datensatz auswählen und sie dem Benutzer anzeigen. In diesem Artikel werden verschiedene Möglichkeiten zum zufälligen Abrufen mehrerer Elemente aus einem Array in PHP vorgestellt und entsprechende Codebeispiele gegeben.

  1. Verwenden Sie die Funktion array_rand

Die Funktion array_rand ist eine in PHP integrierte Funktion, die Array-Elemente zufällig auswählt. Sie kann verwendet werden, um mehrere Elemente zufällig aus einem Array abzurufen. Der Prototyp dieser Funktion ist:

mixed array_rand ( array $array [, int $num = 1 ] )

Dabei ist $array das Array, aus dem Elemente ausgewählt werden sollen, $num ist die Anzahl der Elemente, die ausgewählt werden sollen zufällig ermittelt werden und der Standardwert ist 1. Der Rückgabewert dieser Funktion ist ein zufällig ausgewählter Schlüsselname oder ein Array von Schlüsselnamen.

Das Folgende ist ein Beispielcode, der die Funktion array_rand verwendet, um zufällig mehrere Elemente aus einem Array abzurufen:

<?php
$fruits = array("apple", "banana", "orange", "grape", "kiwi");
$randomKeys = array_rand($fruits, 2);
$randomFruits = array();
foreach ($randomKeys as $key) {
  $randomFruits[] = $fruits[$key];
}
print_r($randomFruits);
?>

Im obigen Code definieren wir ein Array $fruits, das 5 Obstsorten enthält. Verwenden Sie dann die Funktion array_rand, um zufällig zwei Elemente aus dem Array $fruits auszuwählen und die ausgewählten Elemente im Array $randomKeys zu speichern. Als Nächstes verwenden wir eine foreach-Schleife, um das Array $randomKeys zu durchlaufen und die ausgewählten Elemente über die Schlüsselnamen des Arrays im Array $randomFruits zu speichern. Verwenden Sie abschließend die Funktion print_r, um das Array $randomFruits auszugeben, bei dem es sich um zwei zufällig erhaltene Früchte handelt.

  1. Verwenden Sie die Shuffle-Funktion und die Array_Slice-Funktion.

Die Shuffle-Funktion kann das Array zufällig sortieren, und die Array_Slice-Funktion kann Slices einer bestimmten Länge aus dem Array abrufen. Durch die Kombination dieser beiden Funktionen kann der Effekt erzielt werden, dass mehrere Elemente zufällig aus einem Array abgerufen werden. Das Folgende ist ein Beispielcode, der die Shuffle-Funktion und die Funktion array_slice verwendet, um mehrere Elemente zufällig aus einem Array abzurufen:

<?php
$animals = array("dog", "cat", "rabbit", "turtle", "hamster");
shuffle($animals);
$randomAnimals = array_slice($animals, 0, 3);
print_r($randomAnimals);
?>

Im obigen Code definieren wir ein Array $animals, das 5 Tierarten enthält. Verwenden Sie dann die Shuffle-Funktion, um das Array $animals zufällig zu sortieren, d. h. die Array-Elemente zufällig zu mischen. Verwenden Sie als Nächstes die Funktion array_slice, um ein Segment der Länge 3 aus dem verschlüsselten Array $animals zu erhalten, und speichern Sie das Segment im Array $randomAnimals. Verwenden Sie abschließend die Funktion print_r, um das Array $randomAnimals auszugeben, bei dem es sich um die drei zufällig erhaltenen Tiere handelt.

  1. Benutzerdefinierte Funktionen verwenden

Zusätzlich zur Verwendung integrierter Funktionen können wir auch unsere eigenen Funktionen schreiben, um die Funktion des zufälligen Abrufens mehrerer Elemente aus einem Array zu erreichen. Das Folgende ist ein Beispielcode, der eine benutzerdefinierte Funktion verwendet, um mehrere Elemente zufällig aus einem Array abzurufen:

<?php
function getRandomArrayElements($arr, $num) {
  $count = count($arr);
  if ($num >= $count) {
    return $arr;
  }
  $keys = array_rand($arr, $num);
  $randomArr = array();
  foreach ($keys as $key) {
    $randomArr[] = $arr[$key];
  }
  return $randomArr;
}

$colors = array("red", "blue", "yellow", "green", "purple");
$randomColors = getRandomArrayElements($colors, 4);
print_r($randomColors);
?>

Im obigen Code definieren wir eine benutzerdefinierte Funktion getRandomArrayElements, die zwei Parameter akzeptiert: $arr ist das Element, aus dem das Array ausgewählt werden soll , $num ist die Anzahl der Elemente, die zufällig ermittelt werden sollen. Die Funktion berechnet zunächst die Länge des Arrays $count. Wenn die Anzahl der erhaltenen Elemente größer oder gleich der Länge des Arrays ist, wird das gesamte Array direkt zurückgegeben. Andernfalls verwenden Sie die Funktion array_rand, um die Schlüsselnamen von $num-Elementen zufällig auszuwählen, und rufen Sie dann über die Schlüsselnamen die entsprechenden Elemente aus dem ursprünglichen Array ab und speichern Sie sie im $randomArr-Array. Schließlich wird das Array $randomArr zurückgegeben, bei dem es sich um das zufällig erhaltene Element handelt.

Zusammenfassend stellt dieser Artikel drei Methoden zum zufälligen Abrufen mehrerer Elemente aus einem Array in PHP vor und gibt entsprechende Codebeispiele. Entwickler können basierend auf den tatsächlichen Anforderungen eine geeignete Methode auswählen, um die Funktion des zufälligen Abrufens mehrerer Elemente aus einem Array zu implementieren, um den Anforderungen verschiedener Szenarien gerecht zu werden.

Das obige ist der detaillierte Inhalt vonSo erhalten Sie zufällig mehrere Elemente aus einem Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn