Php Can';t取消设置数组中的行

Php Can';t取消设置数组中的行,php,Php,我试图删除数组中的空行,但我可以做到这一点。我需要一些帮助 以下是我尝试过的: $specialites = serialize($_POST['specialite']); foreach($specialites as $specialite) { if($specialite=='') unset($specialites[$specialite]); } 但每次都会出现错误(空白页)

我试图删除数组中的空行,但我可以做到这一点。我需要一些帮助

以下是我尝试过的:

        $specialites = serialize($_POST['specialite']);
        foreach($specialites as $specialite) {
            if($specialite=='')
                unset($specialites[$specialite]);
        }

但每次都会出现错误(空白页)。我需要帮助。谢谢大家!

您需要取消设置
而不是值,并且不要像b0s3所说的那样序列化

foreach($specialites as $key => $specialite) {
        if($specialite==''){
            unset($specialites[$key]);
        }
}
如果这仍然不起作用。您可以创建另一个变量并使用它

$newSpecialites = array();
foreach($specialites as $key => $specialite) {
        if(trim($specialite)){ //trim spaces then check if its not empty
            $newSpecialites[] = $specialite;
        }
}
print_r($newSpecialites);

我检查了一个问题,即在
foreach
之前先调用了
serialize
,这就是实际问题。所以实际上你需要这样做:-

 $specialites = $_POST['specialite'];
    foreach($specialites as $key=> $special) {
        if(empty($special) || $special == '')
            unset($specialites[$key]);
    }
    $specialites = serialize($specialites);

注意:-如果对变量调用了
serialize
,则它将不再是数组类型的变量。

如果在运行循环之前
serialize
,则它将不是数组。这就是为什么会出现错误(空白页)。您应该在修改后对其进行序列化

    $specialites = $_POST['specialite'];
    foreach($specialites as $key => $specialite) {
        if(empty($specialite) || $specialite == '')
            unset($specialites[$key]);
    }
    $specialites = serialize($specialites);

创建临时数组,然后在其中填充非空值

$temp_array=aray();
foreach($specialites as $key=>$specialite) {
        if($specialite!='')
          $temp_array[$key]=$specialite;

    }
     $specialites=$temp_array;

$\u POST['specialite']
中有什么内容?这是一个包含文本的数组it@Rameleu请投票表决的答案也如果答案是真的有用那么投票表决真的很感谢。如果上述答案没有给出预期的结果,那么投票支持这一点真的很奇怪@鲁利埃认为这会奏效。但是,最后一行是$specialites=serialize($specialites)@Anantkumarsing您应该删除第一个块并仅保留编辑,因为这不会有帮助。这看起来不错,但不会取消设置空变量。我仍然在屏幕上显示它。。我不知道为什么。请查收。有一件事,
$key
不小心漏掉了。