Nom d'array dynamique et sa longueur

Petit nouveau ! | 5 Messages

15 févr. 2011, 14:09

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

ViPHP
xTG
ViPHP | 7331 Messages

15 févr. 2011, 15:03

$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é)

Petit nouveau ! | 5 Messages

15 févr. 2011, 16:01

J'ai trouvé ce que je cherchais :
$monArray = sizeof(${$a.'Detail'});
mais je ne sais pas comment appeler cela.
Merci en tout cas

ViPHP
ViPHP | 3607 Messages

15 févr. 2011, 16:03

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];

Petit nouveau ! | 5 Messages

15 févr. 2011, 16:06

ah oui évidemment! Pour la prochaine fois. ;)