带有数组的表单名称

时间:2012-08-14 15:39:49

标签: php

我想将"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吗?或者我怎么能以最好的方式做到这一点?

*请注意,为了便于阅读,我遗漏了所有验证/转义/ htmlentities等

2 个答案:

答案 0 :(得分:0)

没有像你问过的转换,但稍微不同的方法可能更好:

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

答案 1 :(得分: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]

*我保持问题的开放性以获得更好的答案!