L'éditeur PHP Xinyi vous présente une méthode intéressante de fonctionnement des tableaux : mélanger le tableau et conserver les noms de clés. En PHP, la disposition aléatoire des éléments du tableau peut être facilement obtenue grâce à la fonction shuffle, mais les index seront réaffectés. Si vous souhaitez conserver les noms de clé d'origine, vous pouvez d'abord utiliser la fonction array_keys pour obtenir le tableau de noms de clé, puis le brouiller avec le tableau de valeurs et enfin le recombiner dans un nouveau tableau via la fonction array_combine. De cette façon, vous pouvez obtenir une disposition aléatoire des éléments du tableau tout en conservant les noms de clés !
PHP mélange le tableau et conserve les noms de clés
Dans php, l'utilisation de la fonction shuffle()
peut modifier l'ordre du tableau, mais les noms de clés ne seront pas conservés. Pour conserver les noms de clés, vous pouvez utiliser la méthode suivante :
Méthode 1 : Utiliser array_rand()
$array = ["a" => 1, "b" => 2, "c" => 3]; $keys = array_rand($array); $shuffled_array = []; foreach ($keys as $key) { $shuffled_array[$key] = $array[$key]; }
Méthode 2 : Utiliser 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]; }
Méthode 3 : Utiliser des bibliothèques tierces
Les bibliothèques tierces, telles que ArrayLib
, offrent un moyen plus pratique de mélanger les tableaux et de conserver les noms de clés :
use ArrayLibArrays; $array = ["a" => 1, "b" => 2, "c" => 3]; $shuffled_array = Arrays::shuffle($array);
Comparaison des performances
Il existe des différences dans les performances de ces trois méthodes :
array_rand()
Fonctionne mieux sur les petites baies, mais moins efficace sur les grandes baies. mt_rand()
Fonctionne bien dans toutes les tailles de tableaux. Scénarios d'utilisation
Déplacer les tableaux et conserver les noms de clés est utile dans les scénarios suivants :
Notes
array_rand()
和 mt_rand()
会返回一个键,而不是值。需要使用 $array[$key]
et $array[$key]
pour obtenir la valeur. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!