Andreas Görtz: Array von bestimmten Elementen befreien?

Beitrag lesen

Hi,

also erstmal: ich verstehe nicht, wieso hier $options durchlaufen, aber aus $poll_options gelöscht wird. Vielleicht erklärt das ja schon einiges...

Ich denke mal, es wird damit zu tun haben, dass du das Array mit einem Zähler durchläufst und während der Durchläufe Array-Elemente löscht. Damit stimmt der Zähler ja nicht mehr mit der eigentlichen Array-Position überein.

doch - der Zähler stimmt immer noch mit der aktuellen Position überein, da das Array nach einem unset() nicht neu indiziert wird. Dies sollte man allerdings nach dem Schleifendurchlauf tun, damit man keine Lücken im Array erhält, z.B.:

<?php

$_test = array('a', 'b', 'c', '', 'd', ' ', 'e');

for ($i = 0; $i < count($_test); $i++) {

if (trim($_test[$i]) === '')
        unset($_test[$i]);

}

$_test = array_values($_test);

echo '<pre>';
print_r($_test);
echo '</pre>';

/*
Ausgabe:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
)
*/

?>

Gruß,
Andreas.