In der PHP -Entwicklung ist es häufig notwendig, auf Arrays zu arbeiten. Eine häufige Anforderung besteht darin, die Elementreihenfolge des Arrays zu stören und die ursprünglichen Schlüsselnamen zu erhalten. Obwohl Shuffle () von PHP die Reihenfolge des Arrays stören kann, verliert sie den Schlüsselnamen. Um die Schlüsselnamen zu erhalten, können wir einige andere Strategien anwenden.
Zunächst können wir die Funktion array_rand () verwenden, um die Schlüsselnamen im Array zufällig auszuwählen und das durcheinandergebrachte Array zu regenerieren, indem sie diese Schlüsselnamen beibehalten.
$array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_rand($array, count($array));
$shuffled_array = [];
foreach ($keys as $key) {
$shuffled_array[$key] = $array[$key];
}
Eine weitere häufige Methode besteht darin, die Funktion mt_rand () zu verwenden, die in allen Arrays besser abschneidet. Wir können die Schlüsselnamen des Arrays über Array_keys () erhalten und Shuffle () verwenden, um diese Schlüsselnamen zu stören, und dann ein Neuarray basierend auf den gestörten Schlüsselnamen zu generieren.
$array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_keys($array);
shuffle($keys);
$shuffled_array = [];
foreach ($keys as $key) {
$shuffled_array[$key] = $array[$key];
}
Wenn Sie es vorziehen, fertige Lösungen zu verwenden, sollten Sie eine Bibliothek von Drittanbietern wie Arraylib verwenden. Diese Bibliotheken bieten normalerweise eine prägnantere und effizientere Möglichkeit, Arrays zu betreiben.
use ArrayLibArrays;
$array = ["a" => 1, "b" => 2, "c" => 3];
$shuffled_array = Arrays::shuffle($array);
Die Leistung der drei Methoden variiert für Arrays unterschiedlicher Größen:
In den folgenden Szenarien ist es sehr nützlich, das Array zu stören und die Schlüsselnamen zu erhalten:
Zusammenfassend bietet PHP verschiedene Methoden, um das Array zu stören und die Schlüsselnamen beizubehalten, und Entwickler können die am besten geeignete Methode entsprechend den tatsächlichen Anforderungen auswählen.