否则,如果与foreach不起作用


Else if with foreach is not working

这个脚本从我使用的数组中读取文本,如果它不起作用,但如果我使用,如果它有效,我想使用其他,如果有人可以建议一种方法如何做到这一点

if(isset($_REQUEST["maininput"])){
foreach($id as $uni){
    if (preg_match("/" . $uni . "/i", $_POST['maininput'])){
        $founda = $uni;
        $data = $uni . "'n";
        $fname = "accepted.txt";
        $file = fopen($fname, 'a');//creates new file
        fwrite($file, $data);
        fclose($file);
        break;
   }
}
}else if{
foreach($coures as $mac){
    if (preg_match("/" . $mac . "/i", $_POST['maininput'])){
        $found = $mac;
        $data = $mac;
        $fname = "accepted.txt";//generates random name
        $file = fopen($fname, 'a');//creates new file
        fwrite($file, $data);
        fclose($file);
        break;
    }
}
}else{
foreach($university as $un => $unis){
    if (preg_match("/" . $un . "/i", $_POST['maininput'])){
        $founde = $unis;
        //$data = serialize($unis);
        $fname = "accepted.txt";//generates random name
        file_put_contents($fname, $unis, FILE_APPEND);
        //$file = fopen($fname, 'a');//creates new file
        //fwrite($file, $data);
        //fclose($file);
        break;

    }
  }
}

语法错误

if(condition) {
  //magic
}
else if(other_condiotion) {
  //other magic
}
else {
 //no magic
}

或者您可以使用缩短版本:

$var = (condition) ? true : false;

http://php.net/manual/en/control-structures.elseif.php

编辑:很难理解您的问题,但似乎您想这样做:

$found = null;
$founda = null;
if(isset($_REQUEST["maininput"])){
foreach($id as $uni){
    if (preg_match("/" . $uni . "/i", $_POST['maininput'])){
        $founda = $uni;
        $data = $uni . "'n";
        $fname = "accepted.txt";
        $file = fopen($fname, 'a');//creates new file
        fwrite($file, $data);
        fclose($file);
        break;
      }
   }
}
else {
    foreach($coures as $mac) {
    if (preg_match("/" . $mac . "/i", $_POST['maininput'])){
        $found = $mac;
        $data = $mac;
        $fname = "accepted.txt";//generates random name
        $file = fopen($fname, 'a');//creates new file
        fwrite($file, $data);
        fclose($file);
        break;
     }
  }
}

如果您不提供任何额外的第二个条件来检查使用if(condition_match) {} else {//conditon doesn't match}

当您有 2 个或更多条件需要检查时,请使用 else if,例如:

$number = 3
if($number == 1) { //false
 //This is number 1
}
else if($number == 2) { //false
 //This is number 2
}
else { //true
 //This is number 3
}

现在清楚了吗?查看此链接: http://php.net/manual/en/control-structures.elseif.php