Maison > développement back-end > tutoriel php > Comment calculer le produit cartésien de plusieurs tableaux en PHP ?

Comment calculer le produit cartésien de plusieurs tableaux en PHP ?

Barbara Streisand
Libérer: 2024-11-14 12:15:02
original
934 Les gens l'ont consulté

How to Calculate the Cartesian Product of Multiple Arrays in PHP?

Produit cartésien de plusieurs tableaux : une solution complète

Lorsque vous traitez plusieurs tableaux, il peut s'avérer nécessaire de générer un tableau contenant toutes les combinaisons possibles d'éléments de ceux-ci tableaux, tout en évitant les répétitions. Cette opération mathématique est connue sous le nom de produit cartésien.

Pour relever ce défi en PHP, pensez à utiliser la fonction suivante :

function array_cartesian() {
    $_ = func_get_args();
    if(count($_) == 0)
        return array(array());
    $a = array_shift($_);
    $c = call_user_func_array(__FUNCTION__, $_);
    $r = array();
    foreach($a as $v)
        foreach($c as $p)
            $r[] = array_merge(array($v), $p);
    return $r;
}

$cross = array_cartesian(
    array('apples', 'pears',  'oranges'),
    array('steve', 'bob')
);

print_r($cross);
Copier après la connexion

Cette fonction prend des arguments de longueur variable, chacun représentant un tableau. . Il calcule de manière récursive le produit cartésien en sélectionnant un élément du premier tableau et en le combinant avec tous les produits cartésiens possibles des tableaux restants.

Le résultat est un tableau imbriqué contenant chaque combinaison unique d'éléments des tableaux d'entrée. Dans l'exemple donné, le produit cartésien de deux tableaux produira :

Array 0            Array 1
apples             steve
apples             bob
pears              steve
pears              bob
Copier après la connexion

Cette solution est non seulement efficace pour les tableaux à deux dimensions mais peut également être étendue pour gérer n'importe quel nombre de tableaux. Il fournit une manière concise et élégante de résoudre le problème du produit cartésien en PHP.

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:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal