对不起我的英语
我试着用2个数组来说明我的问题,一个数组是一维的,另一个是二维的
我需要从表单id语言发送,文本区域的值。。。像这样:
<input type="text" name="feature[]['<?php echo $row['idlang']?>']" >
<input type="text" name="val[]">
javascript为每种语言创建一个新的输入文本,所以如果数据库中有2种语言,这会放入2个输入文本功能和1个值,如果有100种语言,则会放入100个输入文本,并且总是1个值。但我们知道,这些功能可能有很多
feature中的第二个维度是id语言,通过这种方式具有(feature[][]):
计数数组-id语言-特征的值
array(6) {
[0]=> array(1) { [1]=> string(9) "frequenza" }
[1]=> array(1) { [2]=> string(9) "frequency" }
[2]=> array(1) { [1]=> string(10) "disco duro" }
[3]=> array(1) { [2]=> string(9) "hard disk" }
[4]=> array(1) { [1]=> string(10) "processore" }
[5]=> array(1) { [2]=> string(9) "processor" } }
相反,在val[]数组中有:
array(3) {
[0]=> string(6) "3.2Ghz"
[1]=> string(5) "500Gb"
[2]=> string(8) "intel I7" }
如何在php中从2个输入,1个二甘醇和1个一维得到这个结果?
id language | feature name | feature value
1 | frequenza | 3.2Ghz
2 | frequency | 3.2Ghz
1 | disco duro | 500Gb
2 | hard disk | 500Gb
1 | processore | intel I7
2 | processor | intel I7
我尝试过(但什么都没有):
foreach
foreach
foreach
foreach
foreach
foreach
foreach
foreach
foreach
foreach
foreach
所有这些都是因为它是json字段中的一个插入
非常感谢。
您需要的是交换表单中的[]
和['<?php echo $row['idlang']?>']
<input type="text" name="feature[1][]" >
<input type="text" name="feature[2][]" >
<input type="text" name="val[]">
<!-- 1 and 2 here are ids of a lang -->
之后,您将拥有两个不同的$_POST
阵列:
- 一个是
val
- 第二个是
feature
你可以迭代它们,比如:
foreach ($_POST['val'] as $k => $v) {
// check if current val is not empty:
if (!empty($v)) {
// get according words from `features`
// they will have the same key ($k) under idlang key
echo $_POST['feature'][1][$k]; // 1 is idlang
echo $_POST['feature'][2][$k]; // 2 is idlang
// after that you can do for example:
// insert into db [1, $_POST['feature'][1][$k], $v]
// insert into db [2, $_POST['feature'][2][$k], $v]
}
}