Dans le développement de PHP, il est souvent nécessaire d'opérer sur les tableaux. Une exigence commune consiste à perturber l'ordre des éléments du tableau et à préserver les noms de clés d'origine. Bien que la fonction Shuffle () de PHP puisse perturber l'ordre du tableau, il perdra le nom de clé. Pour préserver les noms clés, nous pouvons adopter d'autres stratégies.
Tout d'abord, nous pouvons utiliser la fonction array_rand () pour sélectionner au hasard les noms de clés du tableau et régénérer le tableau désordonné en conservant ces noms de clés.
$array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_rand($array, count($array));
$shuffled_array = [];
foreach ($keys as $key) {
$shuffled_array[$key] = $array[$key];
}
Une autre méthode courante consiste à utiliser la fonction mt_rand () , qui fonctionne mieux dans toutes sortes de tableaux. Nous pouvons obtenir les noms de clés du tableau via array_keys () , et utiliser shuffle () pour perturber ces noms de clés, puis générer un nouveau tableau basé sur les noms de clés perturbés.
$array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_keys($array);
shuffle($keys);
$shuffled_array = [];
foreach ($keys as $key) {
$shuffled_array[$key] = $array[$key];
}
Si vous préférez utiliser des solutions prêtes à l'emploi, envisagez d'utiliser une bibliothèque tierce telle que ArrayLib . Ces bibliothèques fournissent généralement un moyen plus concis et efficace de faire fonctionner les tableaux.
use ArrayLibArrays;
$array = ["a" => 1, "b" => 2, "c" => 3];
$shuffled_array = Arrays::shuffle($array);
Les performances des trois méthodes varient pour les tableaux de différentes tailles:
Dans les scénarios suivants, il est très utile de perturber le tableau et de préserver les noms de clés:
En résumé, PHP fournit plusieurs méthodes pour perturber le tableau et conserver les noms de clés, et les développeurs peuvent choisir la méthode la plus appropriée en fonction des besoins réels.