2015-06-01 46 views
-1

我試圖刪除陣列中的空行,但我可以實現這一點。我需要一些幫助。無法取消設置我的陣列中的行

這是我已經試過:

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

但每一次,我得到錯誤(空白頁)。我需要幫助。謝謝 !

+1

什麼是'$ _ POST [ 'specialite']'? –

+0

這是一個包含文本的數組 – Rameleu

+0

@Rameleu請投票回答也 –

回答

0

我查一個問題serializeforeach之前先調用,這是實際的問題。所以實際上你需要做的是這樣的: -

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

注: - 如果你對一個變量,然後它會沒有更多的數組類型變量,名爲serialize

+0

不,同樣的問題的人.. – Rameleu

+0

@anantkumarsingh你應該刪除第一個塊,並保持編輯,因爲它不會幫助。 –

+0

完成。感謝告訴。 –

4

您需要取消設置key沒有價值,不象序列說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); 
+0

我仍然有同樣的問題使用此.. – Rameleu

+0

如果答案是真正有用的,然後投票真的很感激。如果上面的答案沒有給出預期的結果,那麼爲此投票是非常奇怪的。 @roullie –

+0

回答已更新。 – roullie

1

如果你在運行循環之前調用serialize,它將不會是一個數組。這就是爲什麼你收到錯誤(空白頁)。修改後,你應該serialize它 -

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

我認爲這會起作用。但是,最後一行將是$ specialites = serialize($ specialites); – Rameleu

+0

已更新。 –

+1

@ jeroen謝謝你。錯過了那一個 –

0

創建temperory陣列然後填充非空值在它

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

    } 
    $specialites=$temp_array; 
+0

修復了代碼中的錯誤.. –