Доброго времени суток! Имеется вот такой кусок кода: PHP: <?php $pname='ar'.$row['link']; $$pname=array(); while ($prow=mysql_fetch_assoc($presult)) $$pname[$prow['link']]=$prow['name']; ?> На выходе получаю пустой массив. Использование var_dump($$pname) выдает array(0) { }. Если же обращаюсь к элементу массива, указывая ключ var_dump($$pname[$prow['link']]), то получаю необходимое значение массива (то, которое и должно быть туда занесено). Что я не учла/в чем ошиблась? Заранее спасибо!
динамическое формирование меню на сайте. из базы выбирается информация о разделах и соответствующих им подразделах, заносится в массивы вида: $armenu['news']='Новости'; // раздел $arnews['qqq']='Подраздел 1'; $arnews['www']='Подраздел 2'; $armenu['about']='О сайте'; // раздел $arabout['sss']='Подраздел 1'; и так далее. потом данные массивы обрабатываются функцией, которая и формирует итоговое выпадающее меню. представленный кусок кода - формирование массива подраздела.
Я извиняюсь за неверное название "этого" ссылками. Если не ошибаюсь, это именуется "переменной переменной". Ну так вот, зачем оно надо? Динамическое формирование или что-либо другое, но не вижу абсолютно никакого смысла использовать эту фичу. Тут нужен многомерный массив просто-напросто.
Массивы нельзя формировать динамически. Но тут это и не нужно: PHP: <? $names=array(); while ($prow=mysql_fetch_assoc($presult)) $names['ar'.$row['link']][$prow['link']]=$prow['name']; Потом для $names сделать extract().
можно-можно PHP: <?php ${$pname}[$prow['link']] = … ?> а то интерпретатор не знает что использовать для имени ($pname[$prow['link']] или $pname) и согласен с высказавшимися ранее,