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

Langage PHP Discussion :

faire une arborescence à partir d'un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut faire une arborescence à partir d'un tableau
    Bonjour,

    y t il capable de résoudre cette fonctions :

    je veux aller de cette strcuture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array (array(21,10,15),array(21,16,14),array(21,10,12),array(22,1,12),array(22,7,22));
    pour y avoir cette arbre :
    21
     |-10
     |  |-15
     |  |-12
     |-16
     |  |-14
    22
     |-1
     |  |-12
     |-7
        |-14
    Voila , un peu difficile mais je compte sur vous.

  2. #2
    Invité
    Invité(e)
    Par défaut


    C'est sûrement pas la solution la plus élégante, mais elle fonctionne. Le principe est d'écrire directement le code PHP du tableau destination à partir des valeurs de chacun des tableaux sources, et d'évaluer ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    function treeFromFlatArrays(array $in)
    {
        $out = array();
     
        foreach ($in as $subIn) {
            eval(sprintf('$out[%s] = "";', implode('][', $subIn)));
        }
     
        return $out;
    }
     
    treeFromFlatArrays(array (array(21,10,15),array(21,16,14),array(21,10,12),array(22,1,12),array(22,7,22)));
    Bon j'avoue, c'est une technique de gendarme de merde, mais ça marche
    Dernière modification par Invité ; 14/03/2013 à 18h45.

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Bonjour David,

    Je suis bien d'accord avec toi : c'est moche mais ça a le mérite d'être original.
    Mais c'est un poil plus ésotérique car le dernier tableau array(22, 7, 22) ne doit pas produire array[22][7][22] mais array[22][7][14].
    Tu vas me demander d'où il sors son 14 hein ? Et je répondrai : que moi non plus j'sais pas. C'est là où est la difficulté

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut
    j'ai testé la solution de David mais ca marche pas ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tu peux être plus précis ? Quel sont les différences entre le tableau que tu attends et le tableau que te renvoie cette fonction ?

    Encore une fois je le répète : ce n'est pas comme ça que cette fonctionnalité devrait être codée, c'était juste pour montrer une solution en 2 lignes de code...

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/09/2014, 23h08
  2. dessiner une courbe à partir d'un tableau de valeur
    Par bob75018 dans le forum C++Builder
    Réponses: 8
    Dernier message: 15/06/2007, 04h29
  3. Réponses: 3
    Dernier message: 28/03/2006, 10h52
  4. [HTML] Comment faire une arborescence en html
    Par jehlg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/02/2006, 23h55
  5. [MySQL] Comment ecrire dans une BDD à partir d'un tableau ?
    Par weed dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/09/2005, 15h53

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