我对此代码有疑问:
$a['i'] = 1;
$b = '$a[\'i\']';
echo $$b;
显示错误:
注意:未定义的变量:第6行的test.php中的$ a ['i']
是否可以创建动态数组变量?
感谢您的时间。
编辑:在我的例子中,我正在尝试编辑多维数组。我尝试将数据添加到我的数组(JSON)时出现问题。我没有固定维度的数组,它是2维或更多维度(我正在为Web表单构建模型,我想为JSON添加无效值)。
现在,在Web表单对象的一个方法中,我有代码检查重新填充对象,以便在需要时添加无效值。
我不能只为JSON数组添加一个值,我需要在多维层面上编辑它。
现在我想出了动态生成变量名的解决方案,然后编辑它。如果有人有解决方案,我们将不胜感激。
private $form = array(
'form_contact'=>array(
'attr'=>array('tag'=>'FORM', 'method'=>'post'),
'elem'=>array(
'fs_contact'=>array(
'attr'=>array('legend'=>'Kontakt', 'tag'=>'FSET'),
'elem'=>array(
'name'=>array(
'attr'=>array('SPAN'=>'Ime i prezime', 'title'=>'Unesite Vaše ime i prezime', 'tag'=>'INPUT', 'type'=>'text'),
'validat'=>array('req'=>'noscript', 'length'=>255),
'invalid'=>true), // Holds info that this is invalid
'www'=>array(
'attr'=>array('SPAN'=>'Web sajt', 'title'=>'Unesite Vaš sajt', 'tag'=>'INPUT', 'type'=>'text'),
'validat'=>array('length'=>255)),
'email'=>array(
'attr'=>array('SPAN'=>'E-mail', 'title'=>'Unesite Vaš email', 'tag'=>'INPUT', 'type'=>'text'),
'validat'=>array('req'=>'email', 'length'=>255)),
'message'=>array(
'attr'=>array('SPAN'=>'Poruka', 'cols'=>'60', 'rows'=>'5', 'title'=>'Unesite Vašu poruku', 'tag'=>'TEXTA', 'value'=>'nesto'),
'validat'=>array('req'=>'all')),
'submit_new_contact_form'=>array(
'attr'=>array('tag'=>'INPUT', 'type'=>'submit', 'value'=>'Pošalji poruku!'))
))// FS end
)) // Form end
);// Array end
答案 0 :(得分:1)
你不能这样做,因为PHP认为你正在寻找一个名为$a['i']
的变量,而不是'i'
数组中的$a
键。 / p>
正确而传统的方法是使用动态密钥/索引:
$b = 'i';
echo $a[$b];