Php 多阵列联合收割机
我有一个工作更新,来自多个条目:Php 多阵列联合收割机,php,arrays,foreach,Php,Arrays,Foreach,我有一个工作更新,来自多个条目: foreach(array_combine($_POST['eprof'] , $_POST['estudno']) as $prof => $sn){ mysqli_query($con,"UPDATE `table` SET `studno` = '$sn' WHERE `students`.`id` = '$prof'") or die(mysqli_error());
foreach(array_combine($_POST['eprof'] , $_POST['estudno']) as $prof => $sn){
mysqli_query($con,"UPDATE `table` SET `studno` = '$sn' WHERE `students`.`id` = '$prof'") or die(mysqli_error());
}
foreach(array_combine($_POST['eprof'] , $_POST['efn']) as $prof => $f){
mysqli_query($con,"UPDATE `table` SET `fn` = '$f' WHERE `students`.`id` = '$prof'") or die(mysqli_error());
}
foreach(array_combine($_POST['eprof'] , $_POST['emn']) as $prof => $m){
mysqli_query($con,"UPDATE `table` SET `mn` ='$m' WHERE `students`.`id` = '$prof'") or die(mysqli_error());
}
根据选中的复选框,上述代码来自所选学生的一个或多个。有没有一种方法可以用清洁剂将foreach
,比如将$sn
,$fn
,$m
组合在一起
foreach(
array_combine(
$_POST['eprof'] ,
$_POST['estudno'],
$_POST['efn'],
$_POST['emn']
) as
$prof => $sn => $f => $m
){ "query here" }
这是正确的还是我做错了?假设它们的键相同:
foreach($_POST['eprof'] as $key => $prof){
$sn = $_POST['estudno'][$key];
$f = $_POST['efn'][$key];
$m = $_POST['emn'][$key];
mysqli_query($con, "UPDATE `table` SET `studno` = '$sn', `fn` = '$f', `mn` ='$m'
WHERE `students`.`id` = '$prof'");
}
如果没有相同的键控,则可以首先在3个数组上运行
array\u values()
,以重新索引。假设它们的键控相同:
foreach($_POST['eprof'] as $key => $prof){
$sn = $_POST['estudno'][$key];
$f = $_POST['efn'][$key];
$m = $_POST['emn'][$key];
mysqli_query($con, "UPDATE `table` SET `studno` = '$sn', `fn` = '$f', `mn` ='$m'
WHERE `students`.`id` = '$prof'");
}
如果没有相同的键控,则可以首先在3个数组上运行
array\u values()
以重新索引。相同的键控意味着相同数量的数组?是的,相同数量的元素与数组键匹配。是的,谢谢。。因为上面的代码来自我之前的代码,它太长,并且在$profidentialy keyed上是多余的,意思是相同数量的数组?是的,相同数量的元素与数组键匹配。是的,它们是,谢谢。。因为上面的代码来自我以前的代码,在$prof上太长太多余了