2012-08-14 113 views
1

我想将"controllers[page[title_new]]"转换为"controllers[page][title_new]"。所以,我可以填写表格与像输入字段:表格名称与阵列

<?php $name = 'controllers[page[title_new]]' ?> 

<input type='text' name='<?= $name; ?>'> 

您提交表格后你会得到$ _ POST =

array(controllers => array(page => array(title_new = ''))); 

我们展示这一点,我想:

<input type='text' name='<?= $name; ?>' value='<?= $_POST[CONVERT($name)]; ?>'> 

那么在php中是否有这样一个CONVERT?或者我怎么能这样做最好的方式?

*请注意,我离开了所有的验证/转义/ヶ辆等,为了便于阅读

回答

0

嘛以下作品:

$name = 'controllers[page[title_new]]'; 
$name = str_replace(array('[', ']]'), array('][', ']'), $name); 
//gives: controllers][page][title_new]] -> controllers][page][title_new] 

$name = preg_replace('/\]\[/','[', $name, 1); 
// gives: controllers[page][title_new] 

*我留下了问题,以获得更好的答案!

0

没有转换像你这样问,但略有不同的方法,可能会更好:

<?php 
$name = 'title_new'; 
$data = $_POST['controllers']['page']; 
?> 
<input type='text' name='controllers[page][<?=$name?>]' value='<?=$data[$name]?>' /> 
+0

对不起,这不会做:(我正在寻找一种通用的方法,因此它可以处理各种控制器,而不仅仅是页面。 – Tessmore 2012-08-14 16:07:55