Problem mit foreach-schleife

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit foreach-schleife

    Hi Allerseits!

    Ich hab da ein sehr merkwürdiges Problem...

    erstmal der Code (ist nicht mein Originalcode sondern ein Versuch das Problem nachzuvollziehen):

    PHP-Code:
    $test = array('a'=>'b',0,1,2);
    foreach(
    $test AS $key=>$val) {
        if(
    $key != 'a') {
            echo 
    '<br>IF :: Key: '.$key.' -- Val: '.$val.'<br>';
        } else {
            echo 
    '<br>ELSE :: Key: '.$key.' -- Val: '.$val.'<br>';
        }

    Es soll also nur eine Aktion stattfinden, wenn der Key nicht a ist.
    Ausgabe:

    ELSE :: Key: a -- Val: b

    ELSE :: Key: 0 -- Val: 0

    IF :: Key: 1 -- Val: 1

    IF :: Key: 2 -- Val: 2

    Aber aus irgendeinem Grund kommt die 0 nicht durch die Bedingung.
    Am a kanns nicht liegen, denn in meinem eigentlichen Code hat der Key eine adere Bezeichnung.
    Keine Ahnung ob ich grad einfach nur saudoof bin, aber ich sehe keinen Grund.
    Wäre dankbar für eure Hilfe!

  • #2
    Wenn du einen String mit einem Integer vergleichst, passieren solche Sachen eben. Du vergleichst einen Integer mit einem String und dabei muss der String in einen Integer gecasted werden. Dein 'a' im Vergleich wird zu int(0) gecasted und 0 == 0 und nicht 0 != 0 --> php muss also ins else

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Re: Problem mit foreach-schleife

      Vergleiche mit === bzw. !==

      Siehe auch http://www.php.net/manual/de/languag...comparison.php
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Vielen Dank funktioniert einwandfrei!

        Ich bin einfach nicht darauf gekommen...

        Kommentar

        Lädt...
        X