IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Produit cartésien d'un tableau de tableaux


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut Produit cartésien d'un tableau de tableaux
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Produit cartésien d'un tableau de tableaux

    Comme le titre l'indique. Donne le produit cartésien d'un tableau de tableaux.

    Qu'en pensez-vous ?
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    j'ai essayé de faire une version utilisant un générateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function cartesien(array $p) {
        if ($p) {
            if ($last = array_pop($p)) {
                foreach (cartesien($p) as $t) {
                    foreach ($last as $v) {
                        yield $t + [count($t) => $v];
                    }
                }
            }
        } else {
            yield [];
        }
    }
     
    $a = iterator_to_array(cartesien([range(1, 8), range('a', 'd'), range('A', 'B')]));
    J'ai pas testé plus que ça, à voir donc

    Sinon j'aime bien aussi ta version

  3. #3
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Ca à l'air de marcher avec le même exemple que j'avais utilisé. Bravo !
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. Vrai produit cartésien de n tableaux
    Par kamii88 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/10/2015, 11h15
  2. [VBA][00]Tableau de tableaux
    Par Mafate dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/04/2007, 21h17
  3. Tableau de tableaux
    Par stokastik dans le forum C
    Réponses: 8
    Dernier message: 15/08/2006, 10h45
  4. Réponses: 10
    Dernier message: 12/07/2006, 13h00
  5. VB6: Comment faire un tableau de tableaux ?
    Par AsmCode dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 10/11/2005, 22h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo