我有此代码的问题:如何动态设置数组变量?
$a['i'] = 1;
$b = '$a[\'i\']';
echo $$b;
它显示一个错误:
Notice: Undefined variable: $a['i'] in test.php on line 6
是否有可能创建动态数组变量?
感谢您的时间。
编辑:在我的例子中,我试图编辑一个多维数组。当我尝试将数据添加到我的数组(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
尝试'回声$ B;'。 – mc10
@ mc10:回声字符串'$ a ['i']'。 – BoltClock
你可以使用'eval($ b);',但使用'eval()'是邪恶的。 – mc10