Maison >développement back-end >tutoriel php >Comment puis-je générer toutes les combinaisons uniques d'une longueur spécifique à partir d'un tableau PHP ?
En PHP, créer des combinaisons d'éléments à partir d'un tableau est une tâche courante. Cet article explore une solution pour générer des combinaisons de longueur spécifique à partir d'un tableau donné, en garantissant que l'ordre des éléments n'est pas pris en compte.
Pour résoudre ce problème, une approche itérative est utilisée, mise en œuvre via la classe Combinaisons. Cette classe sert d'itérateur, permettant un parcours et une récupération efficaces des combinaisons.
La méthode __construct initialise la classe en acceptant un tableau ou une chaîne s et la longueur de combinaison souhaitée k. Il initialise les variables internes et définit la position initiale à zéro.
La méthode _next est chargée de passer à la combinaison suivante. Il parcourt les éléments dans l'ordre inverse, en incrémentant le nombre et en mettant à jour la combinaison en conséquence.
Les méthodes key, current, next, rewind et valid répondent aux exigences de l'interface Iterator, permettant une itération transparente sur les combinaisons.
Un exemple d'utilisation est fourni, démontrant la création d'un objet Combinaisons à partir d'un tableau de nombres :
$array = [1,2,3,4,5,6,7]; $combinations = new Combinations($array, 5);
Itérer sur le L'objet $combinations produira chaque combinaison unique sous forme de chaîne ou de tableau, selon le type d'entrée :
foreach($combinations as $combination) { echo $combination . ' '; }
Sortie :
12345 12346 12347 12356 12357 12367 12456 12457 12467 12567 13456 13457 13467 13567 14567 23456 23457 23467 23567 24567 34567
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!