Foreach - Array ausschließen

Carrear

Erfahrenes Mitglied
Hi Leute,

bei der Verarbeitung eines Formulars benutze ich folgende Schleife:

PHP:
if(get_magic_quotes_gpc()) 
    {        
    foreach($_POST AS $key => $value)
        {
        $_POST[$key] = stripslashes($value);
        }   
    }

Ich erstelle allerdings ein array, indem ich mehreren Checkboxen den name = "keyword[]" zuweise - wenn dieses array diese Schleife durchläuft mach es Probleme. Kann ich dieses Array einfach irgendwie von dieser Schleife ausschließen?

Gruß
Carrear
 
PHP:
if(get_magic_quotes_gpc()) 
{        
  foreach($_POST AS $key => $value)
  {
    if(!is_array($value)) 
    {
      $_POST[$key] = stripslashes($value);
    }
  }   
}

Hier noch eine Alternative, die kürzer ist und jeglichen Inhalt, auch die tiefer gelegenen Dimensionen des Post Arrays, bearbeitet.

PHP:
array_walk_recursive($array, create_function('&$a, $b', '$a = stripslashes($a);'));
 
Zuletzt bearbeitet:
Ich habe leider nicht ganz verstanden, was du gerne machen möchtest aber ich stelle mal ne Vermutung auf:

HTML:
<tr><td>Inhalt</td><td><input type="checkbox" name="keyword[122]" /></td></tr>
<tr><td>Inhalt</td><td><input type="checkbox" name="keyword[123]" /></td></tr>
<tr><td>Inhalt</td><td><input type="checkbox" name="keyword[124]" /></td></tr>

Du möchtest alle Daten von keyword haben bzw. die Nr oder Strings oder Wenn es so ist, ist es sehr einfach zu lösen:

In der Schleife in der du die Daten füllst, musst du einfach die id oder den string mit übergeben. Und um zu überprüfen welche ausgewählt wurden ist einbisschen anders :)

PHP:
	 $ids = array();
                     
   foreach($_POST['keyword'] as $key => $value)  { 
  $ids[] = $key;
}
                           
     for($i = 0; $i < count($ids); $i++) {
                           
      $sql = sprintf('DELETE FROM keywords WHERE id = %d',
                          mysql_real_escape_string($ids[$i])
                                                  );
      mysql_query($sql);
                           
                           }
 
Zurück