[PHP] Array composé

Fermé
Elcely - 7 mai 2009 à 21:50
Elcely Messages postés 4 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 8 mai 2009 - 8 mai 2009 à 19:35
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

3 réponses

Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
7 mai 2009 à 21:53
$array_test['panier'][$compose]['produit']='tavaleur';

?
0
Elcely Messages postés 4 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 8 mai 2009
7 mai 2009 à 21:56
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 mai 2009 à 13:31
he bien tu fais une boucle:

$compose = "['compose']['produit']"; 

foreach($compose as $cle=>$value){
$array_test['panier'][$cle]=$value;
}
0
Elcely Messages postés 4 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 8 mai 2009
8 mai 2009 à 16:59
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 mai 2009 à 19:23
as tu réelement essayé ?

car [compose] est un array
0
Elcely Messages postés 4 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 8 mai 2009 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
8 mai 2009 à 19:35
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