2013-02-07 3 views
0

Mon tableau a la structure suivante. C'est un tableau de fichiers soumis via le formulaire. J'ai plusieurs champs de saisie pour le formulaire. Cependant, si l'utilisateur laisse un champ vide, le tableau sera affiché comme ci-dessous. Je l'écris ensuite dans ma base de données. Je ne veux pas que les champs vides soient écrits.Supprimer un tableau si un élément est vide

J'ai essayé d'utiliser la fonction array_filter(), mais cela ne fonctionnera pas puisque mon tableau n'est pas complètement vide. L'élément d'erreur est défini sur 4. Comment fait-on ça?

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 
     ) 

) 

Répondre

0

Utilisez une condition simple

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

Ce script simple:

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); 
} 

devrait fonctionner correctement. Je pense que ce code s'explique à peu près lui-même. Ce que nous faisons est d'aller dans une boucle foreach dans $array (le tableau principal) et de vérifier si les sous-matrices $a (passées par référence) ont une valeur vide. Si c'est le cas, nous définissons $todel = true (et break; pour l'efficacité) qui désactive le sous-ensemble actuel $a.

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

je le ferais comme ça

+0

'unset (theArray $ [$ i] ; 'à' unset ($ theArray [$ i]); 'J'ai édité cela, mais il montre toujours une erreur de syntaxe – prakashchhetri

+0

Juste testé et ça marche – Nic

Questions connexes