Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多阵列联合收割机_Php_Arrays_Foreach - Fatal编程技术网

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上太长太多余了