theresa: array enthält leere werte nach array_diff?!

hallo ihr lieben!

ich hab mit array_diff() rumexperimentiert und bin auf einen fehler gestoßen, den ich jetzt nicht verstehe.
das ergebnis-array von array_diff() enthält leere indexes! (schriebt man das so?)

ausgabe von $array mit print_r:
Array
(
...
    [12] => 22
    [16] => 30
...
}
hier sind die werte rausgelöscht worden durch array_diff, aber die indexes auch. wenn cih jetzt eine ausgabe mache, dann hab ich mit count() ein problem:

$anzahl = count($array);
for ($i = 0; $i < $anzahl; $i++) {
   echo "$i: $array[$i]<br>";
}

eigenlich funktioneirt alles ja so wie es soll, nur bin ich jetzt mit meinem latein am ende, wie ich die gelöschten werte entweder GANZ aus dem array entferne oder ich die berechnung von $anzahl richtig machen kann...

danke für eure hilfe/ideen/vorschläge!

eure theresa

  1. echo $begrüßung;

    das ergebnis-array von array_diff() enthält leere indexes! (schriebt man das so?)

    Schreiben täte man das Indices oder Indizes. Bei PHP spricht man aber im Allgmeinen von Keys und Values.

    ausgabe von $array mit print_r:
    Array
    (
    ...
        [12] => 22
        [16] => 30
    ...
    }
    hier sind die werte rausgelöscht worden durch array_diff, aber die indexes auch.

    Das ist das normale Verhalten.

    wenn cih jetzt eine ausgabe mache, dann hab ich mit count() ein problem:

    Nein, count() hat damit kein Problem.

    $anzahl = count($array);
    for ($i = 0; $i < $anzahl; $i++) {
       echo "$i: $array[$i]<br>";
    }

    for ist allerdings ungeeignet, wenn man nicht für lückenlose Durchnummerierung der Keys garantieren kann. Verwende

    foreach ($array as $key => $value)

    oder lass dir die Keys neu nummerieren, indem du mit array_values() nur die Werte aus dem Array nimmst und damit ein neues anlegst:

    $array = array_values($array);

    echo "$verabschiedung $name";