2013-02-07 63 views
0

我的數組具有以下結構。它是通過表單提交的一組文件。我有多個表單輸入字段。但是,如果用戶將一些字段留空,則數組將如下顯示。 然後我寫它到我的數據庫。我不想要寫空字段。刪除數組如果任何元素爲空

我試過使用array_filter()函數,但它不起作用,因爲我的數組不是空的。錯誤元素設置爲4。我該怎麼做?

Array 
(
    [0] => Array 
     (
      [name] => stock-photo-cup-icons-tea-and-coffee-raster-version-109119257.jpg 
      [type] => image/jpeg 
      [tmp_name] => /tmp/phpqWWM9X 
      [error] => 0 
      [size] => 30609 
     ) 

    [1] => Array 
     (
      [name] => 
      [type] => 
      [tmp_name] => 
      [error] => 4 
      [size] => 0 
     ) 

    [2] => Array 
     (
      [name] => 
      [type] => 
      [tmp_name] => 
      [error] => 4 
      [size] => 0 
     ) 

    [3] => Array 
     (
      [name] => 
      [type] => 
      [tmp_name] => 
      [error] => 4 
      [size] => 0 
     ) 

) 

回答

0

使用簡單的條件

if(error == 0){ 
    //insert here 
}else{ 
    //do nothing 
} 
0

這個簡單的腳本:

foreach ($array as &$a) { 
    $todel = false; 
    foreach ($a as $k => $v) { 
     if (empty($v)) { // condition to consider a variable empty 
      $todel = true; break; 
     } 
    } 
    if ($todel) unset($a); 
} 

應該正常工作。我認爲這個代碼很好的解釋了它自己。我們正在做的是在$array(主數組)中的foreach循環中,並檢查$a子數組(通過引用傳遞)是否有任何空值。如果是這樣,我們將設置$todel = true(和效率爲break;),這將取消當前的$a子陣列。

0
for($i=0;$i<count($theArray);$i++) 
{ 
    if($theArray[$i]['error']==4) 
    { 
     unset($theArray[$i]); 
    } 
} 

我會那樣做

+0

'未設置($ theArray [$ i] ;'to'unset($ theArray [$ i]);'我編輯了這個,但它仍然顯示語法錯誤 – prakashchhetri

+0

剛剛測試過它,它工作 – Nic