[PHP] Array composé

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. $array_test['panier'][$compose]['produit']='tavaleur';

    ?
    0
    1. 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. he bien tu fais une boucle:

        $compose = "['compose']['produit']"; 
        
        foreach($compose as $cle=>$value){
        $array_test['panier'][$cle]=$value;
        }
        0
    2. 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. as tu réelement essayé ?

        car [compose] est un array
        0
      2. @Alain_42Je 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