【发布时间】:2016-04-21 15:06:36
【问题描述】:
我正在尝试按另一个数组对一个数组进行排序。这两个数组都从表单中获取内容。
这是我的表单代码:
<form method="post" action="">
<div class="groupcontainer">
<br/><label>Group One:</label><br/>
<input type="text" name="groupname[]" value="groupone" /><br/>
<br/><label>Variable Group One:</label><br/>
<input type="text" name="variable[]" value="variableone" />
<input type="text" name="variable[]" value="variabletwo" />
</div>
<br/>
<div class="groupcontainer">
<br/><label>Group Two:</label><br/>
<input type="text" name="groupname[]" value="grouptwo" /><br/>
<br/><label>Variable Group Two:</label><br/>
<input type="text" name="variable[]" value="variablethree" />
<input type="text" name="variable[]" value="variablefour" />
</div>
<br/>
<input type="submit" name="submit" value="Submit" />
</form>
这是 PHP 代码:
<?php
if (!$_POST['submit'] == "") {
foreach($_POST['groupname'] as $groupname) {
$groupnum = 1;
foreach($_POST['variable'] as $variable) {
print "$".$groupname.$groupnum." = '".$variable."';<br/>";
$groupnum++;
}
print "$".$groupname." = array(";
for ($arrnum = 1; $arrnum <= count($_POST['variable']); $arrnum++) {
print "$".$groupname.$arrnum.", ";
}
print ");<br/><br/>";
}
}
?>
这是我提交表单时得到的结果:
$groupone1 = '$variableone';
$groupone2 = '$variabletwo';
$groupone3 = '$variablethree';
$groupone4 = '$variablefour';
$groupone = array($groupone1, $groupone2, $groupone3, $groupone4, )
$grouptwo1 = '$variableone';
$grouptwo2 = '$variabletwo';
$grouptwo3 = '$variablethree';
$grouptwo4 = '$variablefour';
$grouptwo = array($grouptwo1, $grouptwo2, $grouptwo3, $grouptwo4, )
这是我真正想要的结果:
$groupone1 = '$variableone';
$groupone2 = '$variabletwo';
$groupone = array($groupone1, $groupone2)
$grouptwo1 = '$variablethree';
$grouptwo2 = '$variablefour';
$grouptwo = array($grouptwo1, $grouptwo2)
整个事情需要是动态的,因为我想添加尽可能多的组和变量。
我这几天一直在寻找答案,并且已经问过两个不知道答案的人。也许你们可以帮忙。谢谢!
更新:
澄清几点:
-
所以基本上我希望能够添加任意数量的输入表单(我为此使用 jQuery)来创建任意数量的组和变量,例如:
$groupwuteva1 = '你好'; $groupwuteva2 = '再见':
$randomname1 = '绿色'; $randomname2 = '蓝色'; $randomname3 = '红色';
$blabla1 = 'abc'; $blabla2 = 'xyz'; $blabla3 = '123'; $blabla4 = 'bla';
-
我用作组名的任何内容都将在数组一中使用,例如我称一个组为“颜色”,我为该组输入的变量是“蓝色”、“红色”和“绿色”。然后我会得到这个代码:
$colors1 = '绿色'; $colors2 = '蓝色'; $colors3 = '红色';
我希望这能澄清一些问题。非常感谢到目前为止的所有回复!
【问题讨论】:
-
如果不进行重大更改,我认为您不会通过这种方法实现您想要的。看起来您假设 PHP POST 数组将遵循 HTML 的嵌套结构,但事实并非如此。 POST 数组将在一个数组中包含“组名”,在单独的数组中包含“变量”,但没有说明它们之间的关系。
-
感谢大家的帮助。但是,发布的所有解决方案看起来都需要我为输入提供固定名称,例如
name="groupone",这需要适合第一个数组的value="..."的输入。但是给他们固定的名字会错过在表格中输入名字的意义......也许我只是不明白:P