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 :

Création tableau multidimensions à la volée


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Par défaut Création tableau multidimensions à la volée
    Bonjour a tous et a toutes !
    Je viens a vous car j'ai du mal avec un petit algo. Mais avant tout je vous poste le 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
     
    $loop = array('a', 'b');
     
    $data[] = array('a'=>1,'b'=>5, 'data'=>'test1');
    $data[] = array('a'=>1,'b'=>6, 'data'=>'test2');
    $data[] = array('a'=>2,'b'=>7, 'data'=>'test3');
    $data[] = array('a'=>2,'b'=>8, 'data'=>'test4');
     
    /*
    $array_final[1][5] = 'test1';
    $array_final[1][6] = 'test2';
    $array_final[2][7] = 'test3';
    $array_final[2][8] = 'test4';
    */
    le code en commentaire montre ce que je souhaiterais faire ! le tableau loop represente les clefs a identifier dans le tableau data et leur niveau dans la generation du array_final ! En faite je vous poste pas mes codes de tentative car ils sont mediocres (avec eval, recursion ou autre). Je viens plutot pour demander une aide et/ou une idée sur comment réaliser ce shlimblick !

    J'espere que j'ai été claire ! je vous remercie d'avance pour votre futur aide !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 71
    Par défaut
    je ne sais pas trop a quoi sert ton algo mais la reponse est
    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
     
    <?php
    $data=array();
    $data[] = array('a'=>1,'b'=>5, 'data'=>'test1');
    $data[] = array('a'=>1,'b'=>6, 'data'=>'test2');
    $data[] = array('a'=>2,'b'=>7, 'data'=>'test3');
    $data[] = array('a'=>2,'b'=>8, 'data'=>'test4');
     
    $final=array();
    foreach($data as $array){
    	$final[$array['a']][$array['b']]=$array['data'];
    }
     
    print_r($final);
    ?>
    mais vaudrait p-e mieux que tu nous dise ce que tu cherche a faire car il y a surement de meillleurs solutions!

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Par défaut
    ton exemple est pertinant, ceci etant il y a une chose que j'ai totalement oublier de dire et qui fait que mon probleme est complexe ! le tableau loop peut etre a N dimension. Je ne connais pas la profondeur, voila pourquoi ton exemple n'est pas correcte pour mon soucis (bien qu'il soit fonctionnelle)

    Apres ce que je cherche a faire c'est un peu complexe mais j'ai en faite simplifié le soucis a son plus simple, ce que je recherche c'est l'algo en soit :-) en tout cas merci pour ta reponse mais je n'ai pas encore la solution. Tu as une autre idée ? :-)

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Par défaut
    pfiouuu je me suis grillé le cerveau mais j'ai trouver l'astuce ! mais alors tiré par les cheveux comme je les aime :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    $loop = array('a', 'b');
     
    $data[] = array('a'=>1,'b'=>5, 'data'=>'test1');
    $data[] = array('a'=>1,'b'=>6, 'data'=>'test2');
    $data[] = array('a'=>2,'b'=>7, 'data'=>'test3');
    $data[] = array('a'=>2,'b'=>8, 'data'=>'test4');
     
    $array_final[1][5] = 'test1';
    $array_final[1][6] = 'test2';
    $array_final[2][7] = 'test3';
    $array_final[2][8] = 'test4';
     
    $final=array();
    $string='';
    foreach($data as $array)
    {
    	$tmp = '';
    	foreach ($loop as $key)
    	{
    		$tmp.='['.$array[$key].']';
    	}
    	$string .= '$final'.$tmp.'=\''.$array['data'].'\';';
    }
    eval($string);
    print_r($final);
    voila, eval c'est magique ! et avec cette methode on peux faire a n dimension sans soucis :-)

    en tout cas merci pour ta reponse !

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par jypees Voir le message
    ton exemple est pertinant, ceci etant il y a une chose que j'ai totalement oublier de dire et qui fait que mon probleme est complexe ! le tableau loop peut etre a N dimension. Je ne connais pas la profondeur, voila pourquoi ton exemple n'est pas correcte pour mon soucis (bien qu'il soit fonctionnelle)
    Apres ce que je cherche a faire c'est un peu complexe mais j'ai en faite simplifié le soucis a son plus simple, ce que je recherche c'est l'algo en soit :-) en tout cas merci pour ta reponse mais je n'ai pas encore la solution. Tu as une autre idée ? :-)
    Désolé mais tu dis des choses précises qui restent non liées a ta question concernant ton tableau, tu vois l'avantage que nous avons est de ne connaitre que l'espace binaire

    Mais tu le sais on peut tout faire avec ça !

    Par exemple dans l'espace ordinaire
    la troisième dimension est extérieure aux 2 autres.
    lorsqu'a la notion espace on ajoute le concepte vitesse énergie etc ...
    on arrive tout droit a un espace a n dimension

    Donc restons sur un concepte tel que décris , ou précises !!

    Le temps de répondre et tu avais reposté ! ça va bien dans mon sens ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création tableau à la volée
    Par jypees dans le forum Langage
    Réponses: 4
    Dernier message: 09/05/2009, 00h09
  2. [ImageMagick] Création d'image à la volée
    Par gdawirs dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 21/11/2005, 15h53
  3. [JMenuBar] Création d'objets à la volée
    Par Rampa dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 13h56
  4. [IB][IBQUERY][D7 pro] Création de Triggers à la volée.
    Par N1bus dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/10/2004, 14h23

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