Andreas Görtz: Wert mit Key aus Array holen der leer ist

Beitrag lesen

Hi,

Wieso löscht php mit empty und unset mein leeren array key nicht???

$array = array(
"key1" => "value1",
"key2" => "",
"key3" => "value3",
"key4" => "value4",
"key5" => "",
"key6" => "value6",
);

$anzahl = count($array);
  for( $a = 0; $a <= $anzahl; $a++ )
   {
     if(empty($array[$a]))
      {
    unset($array[$a]);
    }
   }

PHP löscht die leeren Array-Elemente sehr wohl. Dein Problem hierbei ist, dass du die Elemente $array[0] bis $array[6] löschst. Diese haben allerdings auch vorher schon nicht existiert, da du die Elemente $array['key1'] bis $array['key6'] definiert hast. Und diese Elemente werden in deiner Schleife weder abgefragt, noch gelöscht. Benutzt du folgende Schleife, müsste es funktionieren:

foreach ($array as $key => $val) {

if (empty($val))
        unset($array[$key]);

}

Gruß,
Andreas.