1,"b"=>2,"c"=>3];$keys=array_rand ($array );$shuffled_array=[];foreach($keysas$key){$"/> 1,"b"=>2,"c"=>3];$keys=array_rand ($array );$shuffled_array=[];foreach($keysas$key){$">
Heim >Backend-Entwicklung >PHP-Tutorial >PHP mischt das Array und behält die Schlüsselnamen bei
Der PHP-Editor Xinyi stellt Ihnen eine interessante Array-Operationsmethode vor – das Mischen des Arrays und das Beibehalten der Schlüsselnamen. In PHP kann eine zufällige Anordnung von Array-Elementen leicht durch die Shuffle-Funktion erreicht werden, die Indizes werden jedoch neu zugewiesen. Wenn Sie die ursprünglichen Schlüsselnamen beibehalten möchten, können Sie zunächst die Funktion array_keys verwenden, um das Schlüsselnamen-Array abzurufen, es dann mit dem Werte-Array zu verschlüsseln und es schließlich über die Funktion array_combine wieder zu einem neuen Array zu kombinieren. Auf diese Weise können Sie eine zufällige Anordnung der Array-Elemente erreichen und dabei die Schlüsselnamen beibehalten!
PHP mischt das Array und behält die Schlüsselnamen bei
In php kann die Verwendung der Funktion shuffle()
die Reihenfolge des Arrays ändern, die Schlüsselnamen bleiben jedoch nicht erhalten. Um Schlüsselnamen beizubehalten, können Sie die folgende Methode verwenden:
Methode 1: Verwenden Sie array_rand()
$array = ["a" => 1, "b" => 2, "c" => 3]; $keys = array_rand($array); $shuffled_array = []; foreach ($keys as $key) { $shuffled_array[$key] = $array[$key]; }
Methode 2: Verwenden Sie mt_rand()
$array = ["a" => 1, "b" => 2, "c" => 3]; $keys = array_keys($array); shuffle($keys); $shuffled_array = []; foreach ($keys as $key) { $shuffled_array[$key] = $array[$key]; }
Methode 3: Bibliotheken von Drittanbietern verwenden
Bibliotheken von Drittanbietern wie ArrayLib
bieten eine bequemere Möglichkeit, Arrays zu mischen und Schlüsselnamen beizubehalten:
use ArrayLibArrays; $array = ["a" => 1, "b" => 2, "c" => 3]; $shuffled_array = Arrays::shuffle($array);
Leistungsvergleich
Es gibt Unterschiede in der Leistung dieser drei Methoden:
array_rand()
Funktioniert am besten bei kleinen Arrays, ist jedoch bei großen Arrays weniger effizient. mt_rand()
Gute Leistung bei allen Array-Größen. Nutzungsszenarien
Das Verschieben von Arrays und das Beibehalten von Schlüsselnamen ist in den folgenden Szenarien nützlich:
Notizen
array_rand()
和 mt_rand()
会返回一个键,而不是值。需要使用 $array[$key]
und $array[$key]
verwenden, um den Wert zu erhalten. Das obige ist der detaillierte Inhalt vonPHP mischt das Array und behält die Schlüsselnamen bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!