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){$">

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

王林
王林avant
2024-03-21 13:46:291058parcourir

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.
  • 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer