explode() - Array zählen

  • Guten Abend Com.

    Habe ein kleines Problem.

    Ich benutze folgende Funktion ob mehrere, durch ';' getrennte Einträge, zu zählen.
    Leider wird wenn ich in der Textbox ein ';' schreibe schon das nächste Element im Array gesetzt. Und somit schon immer im voraus ein Eintrag mehr angegeben. Gibt es da eine Methode dass zu unterbinden?

    Mit freundlichen Grüßen
    XantypiaxD

  • habs schon so geändert:

    PHP
    $get = $_GET['value'];
    
    
    $pattern = explode(';', $get);
    $count = count($pattern);
    
    
    echo $count;

    Problem besteht weiterhin..

  • Ehrlich gesagt verstehe ich nicht

    Zitat


    Leider wird wenn ich in der Textbox ein ';' schreibe schon das nächste Element im Array gesetzt.

    PHP
    echo count(explode(';',  $_GET['value']));
  • Wenn ich z.B. in die Textbox folgendes schreibe: Test1; Test2; Test3;

    Und ich schreibe Test1; dann wird dass als 2 Elemente gewertet: $pattern[0]->Test1 , $pattern[1]
    Wenn ich dann Test1; Test2 schreibe dann wird dass zweite Elemente durch $pattern[1]->Test2 ergänzt.

    Folgendes habe ich jetzt ausprobiert:

    Mir wird jetzt alles korrekt angegeben, aber ich bekommen immer folgende Fehlermeldung: Notice: Undefined offset: 1 in C:* on line 8

    Line 8 wäre folgende: if($pattern[$i]=="" || empty($pattern[$i])) {

  • Kürze doch einfach das letzte Zeichen weg:)
    Alternativ kannst auch schauen ob das letzte ein ; ist, aber so wie ich das sehe ist es ja immer ein ;

    $short = substr($_GET['xy'], 0,strlen($_GET['xy'],)-1);
    explode($short....)


    Zu deinem Fehler:
    $pattern[$i]=="" muss aus der IF

    mfg

  • Und die Kurzform:

    PHP
    <?php
      $get = (substr($_GET['value'], -1, 1) == ';') ? (substr($_GET['value'], 0, -1)) : $_GET['value'];
    
      $count = count(explode(';', $get));
    ?>