Maison > développement back-end > tutoriel php > PHP mélange le tableau, en conservant les noms de clés

PHP mélange le tableau, en conservant les noms de clés

王林
Libérer: 2024-03-21 13:48:01
avant
1064 Les gens l'ont consulté

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];
}
Copier après la connexion

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];
}
Copier après la connexion

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);
Copier après la connexion

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.
  • Les bibliothèques tierces fonctionnent généralement mieux que les fonctions PHP natives.

Scénarios d'utilisation

Déplacer les tableaux et conserver les noms de clés est utile dans les scénarios suivants :

  • Lorsque vous devez modifier l'ordre des éléments dans un tableau tout en ayant besoin d'accéder aux clés de chaque élément.
  • Lorsque vous devez générer une liste de lecture aléatoire ou une autre liste ordonnée d'éléments.
  • Lorsque vous devez échantillonner aléatoirement des données dans un tableau.

Notes

  • array_rand()mt_rand() 会返回一个键,而不是值。需要使用 $array[$key] et
  • renverront une clé, pas une valeur. Besoin d'utiliser $array[$key] pour obtenir la valeur.
  • Les bibliothèques tierces devront peut-être être installées avant de pouvoir être utilisées.
  • Assurez-vous de copier le tableau avant de le mélanger pour éviter de modifier le tableau d'origine.
🎜

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!

source:lsjlt.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal