En PHP, les tableaux et les ensembles sont des structures de données très courantes. Un tableau est une collection ordonnée pouvant contenir différents types de données, tels que des nombres, des chaînes et des objets. Un ensemble est plus abstrait et représente une collection d’éléments, où chaque élément est unique et n’a pas d’ordre ni d’index spécifique.
Dans le développement réel, nous avons souvent besoin de convertir un tableau en un ensemble pour faciliter des recherches et des opérations plus efficaces. En PHP, il est très simple d'implémenter cette conversion, et cet article présentera les méthodes et techniques d'implémentation.
1. Utilisez la fonction array_unique
En PHP, il existe une fonction intégrée array_unique, qui peut être utilisée pour supprimer les éléments en double d'un tableau. La syntaxe de base de cette fonction est la suivante :
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Parmi eux, $array représente le tableau qui doit être dédupliqué, $sort_flags représente la méthode de tri facultative, les plus courantes sont SORT_STRING (trié par chaîne), SORT_NUMERIC (trié par numéro) et SORT_REGULAR (tri selon l'ordre naturel) etc.
Si vous transmettez un tableau à la fonction array_unique, elle renverra un nouveau tableau contenant des éléments uniques. Par exemple :
$arr = array(1,2,2,3,3,3); $set = array_unique($arr); print_r($set); // 输出 Array ( [0] => 1 [1] => 2 [3] => 3 )
On peut voir que l'utilisation de la fonction array_unique peut facilement convertir un tableau en un ensemble.
2. Utilisez la fonction array_flip
En plus d'utiliser la fonction array_unique, il existe un autre moyen simple de convertir un tableau en collection, qui consiste à utiliser la fonction array_flip. Cette fonction est utilisée pour échanger les clés et les valeurs du tableau, c'est-à-dire que les valeurs du tableau sont utilisées comme clés du nouveau tableau et les clés d'origine sont ignorées. La syntaxe de base de la fonction est la suivante :
array array_flip ( array $array )
Parmi eux, $array représente le tableau dont les clés et les valeurs doivent être échangées. Si vous transmettez un tableau à la fonction array_flip, elle renvoie un nouveau tableau avec les valeurs du tableau d'origine comme clés et toutes les valeurs du nouveau tableau. Par exemple :
$arr = array('a', 'b', 'c'); $set = array_flip($arr); print_r($set); // 输出 Array ( [a] => 0 [b] => 1 [c] => 2 )
Puisque les éléments de l'ensemble doivent être uniques, on peut ignorer les valeurs du nouveau tableau et ne conserver que ses clés, c'est-à-dire :
$arr = array('a', 'b', 'c'); $set = array_flip($arr); $set = array_keys($set); print_r($set); // 输出 Array ( [0] => a [1] => b [2] => c )
De cette façon, on obtient un ensemble contenant tous les éléments du tableau d'origine.
3. Utilisez la fonction array_reduce
Une autre méthode courante consiste à utiliser la fonction array_reduce. Cette fonction est utilisée pour calculer de manière itérative tous les éléments du tableau et renvoyer un résultat final. La syntaxe de base de la fonction est la suivante :
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
Parmi eux, $array représente le tableau qui doit être calculé de manière itérative, $callback est une fonction de rappel utilisée pour calculer les éléments du tableau, $initial est une valeur initiale facultative. , utilisé pour spécifier l'itération de l'état initial du processus. La syntaxe de base de la fonction de rappel est la suivante :
mixed function callback ( mixed $carry , mixed $item )
Parmi eux, $carry représente le résultat de l'itération précédente, et $item représente l'élément de l'itération en cours. La fonction de rappel génère un nouveau résultat de calcul basé sur le dernier résultat de calcul et l'élément actuel, et le renvoie à la fonction array_reduce pour l'itération suivante.
Afin de convertir un tableau en collection, nous devons utiliser la technique de déduplication dans la fonction de rappel. Plus précisément, nous pouvons utiliser la technique de référence de tableau en PHP pour utiliser la valeur comme clé dans la collection et définir la valeur elle-même sur 1 pour garantir que la valeur correspondant à chaque clé est 1, garantissant ainsi que les éléments de la collection sont uniques. . Le code est le suivant :
$arr = array(1,2,2,3,3,3); $set = array_reduce($arr, function(&$res, $cur){ $res[$cur] = 1; return $res; }, array()); print_r(array_keys($set)); // 输出 Array ( [0] => 1 [1] => 2 [2] => 3 )
Grâce au traitement de la fonction de rappel ci-dessus, nous avons réussi à convertir le tableau d'origine en une collection. Bien entendu, nous pouvons également utiliser d'autres opérations spécifiques à l'ensemble dans la fonction de rappel, telles que l'intersection, l'union, la différence, etc.
Résumé
La conversion d'un tableau en collection est très courante dans le développement réel. PHP propose plusieurs façons d'effectuer cette conversion, notamment en utilisant les fonctions intégrées array_unique, array_flip et array_reduce, chacune avec ses propres avantages et inconvénients. Dans des scénarios réels, les développeurs peuvent choisir différentes méthodes en fonction de situations spécifiques pour garantir l'efficacité et la lisibilité du code.
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!