用php处理数组
我在一个待处理的表单中得到了这个2数组。但是,我只能从阵列中的一个获取输出。样本如下:用php处理数组,php,arrays,multidimensional-array,forms,html-input,Php,Arrays,Multidimensional Array,Forms,Html Input,我在一个待处理的表单中得到了这个2数组。但是,我只能从阵列中的一个获取输出。样本如下: PHP部分如下所示: foreach ($_POST ["data"] as $id => $subs) { foreach ($subs as $key=>$sub) { $subcategory = $sub; if($subs['id']=="$subcategory"){
PHP部分如下所示:
foreach ($_POST ["data"] as $id => $subs) {
foreach ($subs as $key=>$sub) {
$subcategory = $sub;
if($subs['id']=="$subcategory"){
echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";
}else{
//echo "hi2";
echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";
}
}
}
foreach($\u POST[“data”]作为$id=>$subs){
foreach($subs作为$key=>$sub){
$subcategory=$sub;
如果($subs['id']==“$subcategory”){
echo$sql=“插入x(kodLebuhraya,kodSeksyen)值(‘“$subs['id']”、‘“$sub.”);echo“
”;
}否则{
//回声“hi2”;
echo$sql=“插入x(kodLebuhraya,kodSeksyen)值(‘“$subs['id']”、‘“$sub.”);echo“
”;
}
}
}
这意味着一个地点对应一个shipval。我有多个位置和shipval输入字段。你们能告诉我哪一个错了吗。感谢高级。您有
您有用于多选,名称必须以方括号结尾,因此您需要更改shipval
输入的名称对于多选,名称必须以方括号结尾,因此,您需要更改shipval
输入的名称首先,您已写入输入
,而不是输入
第二,这一行:
foreach($subs作为$key=>$sub){
将每个变量视为一个数组,但位置不是数组。首先,您将写入输入
,而不是输入
第二,这一行:
foreach($subs作为$key=>$sub){
将每个变量视为数组,但位置不是数组。因此基本上需要成对传递位置和shipval
在HTML中尝试此结构:
<label>Set One</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Two</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Three</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
设置一个
第二盘
第三盘
下面是PHP的代码:
foreach ($_POST['data']['location'] as $key => $location) {
$shipVal = $_POST['data']['shipval'][$key];
//now you have a pair of $location and $shipVal
echo $location.' : '.$shipVal.'<hr>';
}
foreach($_POST['data']['location']作为$key=>$location){
$shipVal=$_POST['data']['shipVal'][$key];
//现在您有了一对$location和$shipVal
echo$location.':'.$shipVal.
;
}
避免在未命名的索引之后使用命名索引,例如,
如果一对字段为空,则可能会丢失字段顺序。因此基本上需要成对传递location和shipval
在HTML中尝试此结构:
<label>Set One</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Two</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Three</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
设置一个
第二盘
第三盘
下面是PHP的代码:
foreach ($_POST['data']['location'] as $key => $location) {
$shipVal = $_POST['data']['shipval'][$key];
//now you have a pair of $location and $shipVal
echo $location.' : '.$shipVal.'<hr>';
}
foreach($_POST['data']['location']作为$key=>$location){
$shipVal=$_POST['data']['shipVal'][$key];
//现在您有了一对$location和$shipVal
echo$location.':'.$shipVal.
;
}
避免在未命名的索引之后使用命名索引,例如,
如果一对字段为空,则可能会丢失字段顺序。我不认为需要循环,因为您只想访问$\u POST['data'][0]
和$\u POST['data'][1]['id']
我还注意到您的SQL是重复的,因此您可以尝试
$sql = "INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('%s','%s')" ;
printf($sql,mysqli_real_escape_string($_POST['data'][0]),mysqli_real_escape_string($_POST['data'][1]['id']));
输出
INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('A','B')
使用的形式
<form method="POST">
A : <input id="location" type="text" name="data[]" value="" />
B : <input id="shipval" type="text" name="data[][id]" value="" />
<input id="shipval" type="submit" name="submit" value="Submit" />
</form>
A:
B:
我认为不需要循环,因为您只想访问$\u POST['data'][0]
和$\u POST['data'][1]['id']
我还注意到您的SQL是重复的,因此您可以尝试
$sql = "INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('%s','%s')" ;
printf($sql,mysqli_real_escape_string($_POST['data'][0]),mysqli_real_escape_string($_POST['data'][1]['id']));
输出
INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('A','B')
使用的形式
<form method="POST">
A : <input id="location" type="text" name="data[]" value="" />
B : <input id="shipval" type="text" name="data[][id]" value="" />
<input id="shipval" type="submit" name="submit" value="Submit" />
</form>
A:
B:
如果这是复制/粘贴的代码:良好捕获,这无疑是问题所在。+1可能值得注意的是,如果没有显示警告,它实际上会发出警告-这可能是为什么没有注意到的原因。如果这是复制/粘贴的代码:良好捕获,这无疑是问题所在。+1可能值得注意的是,它实际上会发出警告-这可能是我如果没有显示警告,则不会被注意到。这真的很奇怪,您在这里尝试做的是….data[]是输入位置大小写中的一个简单字符串,data[]数组在shipval的情况下…演示一个元素如何同时是数组和字符串更改输入名称方法你知道我可以这样做吗?我不知道如何解决这个问题…这真的很奇怪你想在这里做的是…data[]是输入位置大小写中的一个简单字符串,data[]数组是否在shipval情况下…显示一个元素如何同时是数组和字符串更改输入名称方法你知道我可以这样做吗?我不知道如何解决此问题首先主要问题是输入字段名称他无法获得任何id原因:::假设场景他的位置类似于数据[0]='london'来自位置,那么让我们假设id应该是5,然后数据[0][id]=5…看看这个,数据[0]可以同时为字符串值和关联数组time@Surace这只是一个基本问题,但我用我使用的表格更新了我的答案。基本上,我有多个输入位置和shipval。它将是一对。意味着一个位置对应一个shipval。如果我有4个输入位置对应位置和shipval如何?代码将是什么如果所有的主要问题都在输入字段名中,他将无法获得任何id原因:::假设场景他的位置类似于数据[0]=“伦敦”,那么让我们假设id应该是5,然后数据[0][id]=5…看看这个数据[0]可以同时为字符串值和关联数组time@Surace这只是一个基本问题,但我用我使用的表格更新了我的答案。基本上,我有多个输入位置和shipval。它将是一对。意味着一个位置对应一个shipval。如果我有4个输入位置对应位置和shipval如何?代码将是什么?我没有你说的“将每个变量视为数组,但位置不是数组”是什么意思?有什么解决方案吗?我不明白。你说的“将每个变量视为数组,但位置不是数组”是什么意思.有什么解决方案吗?我已经尝试了你的代码。并更改了表单的输入。但我没有得到任何输出。已经尝试回显位置和shipval。有什么想法吗?更正了sy