[PHP] Array composé

Elcely -  
Elcely Messages postés 4 Statut Membre -
Bonjour à tous,

Je souhaiterais composer un array dynamiquement mais je n'ai apparemment pas trouvé la bonne formule.

Un exemple pour que vous compreniez. Voici mon code de test :
<?php
$compose = "['compose']['produit']"; 
$array_test['panier']{$compose} = '123';
?>

En faisant un print_r de $array_test, j'obtiens :
Array
(
    [panier] => Array
        (
            [['compose']['produit']] => 123
        )

)


Alors que je souhaiterais avoir :
Array
(
    [panier] => Array
        (
            [compose] => Array
                (
                    [produit] => 123
                )

        )

)

Quelle est le bon code pour arriver à ce résultat ?

En vous remerciant chaleureusement par avance pour vos réponses, je vous souhaite de passer une bonne soirée
Configuration: Windows Vista
Firefox 3.0.10

3 réponses

  1. Smoking bird Messages postés 911 Statut Membre 58
     
    $array_test['panier'][$compose]['produit']='tavaleur';

    ?
    0
  2. Elcely Messages postés 4 Statut Membre
     
    Merci pour ta réponse, Smoking Bird, mais ce n'est pas cela puisque je ne sais pas combien j'aurais d'éléments dans $compose.

    Je pourrais par exemple avoir :
    $compose = "['compose']['produit']";
    ou $compose = "['compose']";
    ou encore $compose = "['compose']['produit']['quantite']";
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      he bien tu fais une boucle:

      $compose = "['compose']['produit']"; 
      
      foreach($compose as $cle=>$value){
      $array_test['panier'][$cle]=$value;
      }
      0
  3. Elcely Messages postés 4 Statut Membre
     
    Merci Alain, mais ce n'est pas cela.
    En effet, avec ta méthode j'aurais :
    Array
    (
        [panier] => Array
            (
                [compose] => 'produit'
            )
    
            )
    
    )
    


    Alors que je souhaite obtenir :
    Array
    (
        [panier] => Array
            (
                [compose] => Array
                    (
                        [produit] => 123
                    )
    
            )
    
    )
    


    Le problème semble épineux !
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      as tu réelement essayé ?

      car [compose] est un array
      0
      1. Elcely Messages postés 4 Statut Membre > Alain_42 Messages postés 5413 Statut Membre
         
        Je n'ai pas testé mais j'ai indiqué le print_r théorique. Dans tous les cas, cela ne fonctionne pas car $compose n'est pas un array.
        Warning: Invalid argument supplied for foreach() in C:\wamp\www\compose.php on line 4
        
        0