Page 1 sur 1

Nom d'array dynamique et sa longueur

Posté : 15 févr. 2011, 14:09
par Trouille2
Bonjour à tous,
voici mon premier message sur le forum, je m'initie au PHP depuis peu et je me retrouve confronté à ce petit problème pour lequel je ne trouve pas de solution.
J'ai bien sûr cherché à savoir si un post existait sur le sujet, mais ne connaissant pas les termes adéquats, je ne trouve rien. Sans doute que vous pourrez m'éclairer.

Je ne parviens pas à obtenir la valeur de la longueur d'un array dont le nom est recomposé dynamiquement :
au départ j'ai un array nommé $biduleDetail = array("aaa","bbb","ccc").
si $a=bidule;
$monArray = 'sizeof($'.$a.'Detail)';
eval("\$monArray = \"$monArray\";");
echo $monArray; // et là j'obtiens "array" dans ma page

Comment dois-je faire pour recomposer le nom d'un array et pouvoir obtenir sa longueur?

J'attend vos réponses éclairées

Re: Nom d'array dynamique et sa longueur

Posté : 15 févr. 2011, 15:03
par xTG
$a = "bidule";
$nomArray = $a . "Detail";
echo sizeof($$nomArray);
Je procéderai ainsi pour ma part, eval() n'est pas du tout propre.
Ce code-ci te dépanne-t-il ? (je ne l'ai pas testé)

Re: Nom d'array dynamique et sa longueur

Posté : 15 févr. 2011, 16:01
par Trouille2
J'ai trouvé ce que je cherchais :
$monArray = sizeof(${$a.'Detail'});
mais je ne sais pas comment appeler cela.
Merci en tout cas

Re: Nom d'array dynamique et sa longueur

Posté : 15 févr. 2011, 16:03
par jojolapine
Bonjour...
Tant qu'a être dans les tableaux, autant aller jusqu'au bout non?
<?php

$data = array(
    'biduleDetail' => array("aaa","bbb","ccc")
);

$a='biduleDetail';

echo sizeof($data[$a]);

echo $data[$a][1];

Re: Nom d'array dynamique et sa longueur

Posté : 15 févr. 2011, 16:06
par Trouille2
ah oui évidemment! Pour la prochaine fois. ;)