in_array case insensitive

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

  • in_array case insensitive

    Hoi,

    gibt es eine Möglichkeit mit in_array() auf einen Wert zu prüfen, aber ohne auf Groß- und Kleinschreibung zu achten?


    PHP-Code:

    function in_array_nocase($search, &$array) {
      
    $search strtolower($search);
      foreach (
    $array as $item)
       if (
    strtolower($item) == $search)
         return 
    TRUE;
      return 
    FALSE;

    Die Funktion aus den User Comments von php.net hilft ja schon mal weiter - gibt es da nichts natives?

  • #2
    afaik gibt es nichts eleganteres.

    Kommentar


    • #3
      Schade, hätte mir in_iarray() oder so gewünscht, oder als modifier hinte dran oder so...

      Naja, dann musses so gehen.

      Danke.

      Kommentar


      • #4
        Warum nutzt du nicht die schon vorhandene Funktion in_array und änderst einfach vorher den Array-Inhalt?
        PHP-Code:
        function in_iarray($needle$haystack$strict false) {
          
        //vielleicht finden wir's ja sofort
          
        if (in_array($needle$haystack$strict))
            return 
        true;
          
        //schade...
          //alles in Kleinbuchstaben umwandeln
          //und nochmal suchen
          
        $needle strtolower($needle);
          
        $haystack array_map('strtolower'$haystack);
          return 
        in_array($needle$haystack$strict);

        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Hey, danke.

          Das ist eine gute Idee. Ich wäre natürlich nicht auf die Idee gekommen Array_map zu nutzen.

          Kommentar


          • #6
            wobei ich pregos funktion effizienter finde... denk dir mal ein array mit hundert millionen milliarden... du weißt schon... einträgen - prego läuft es nur ein mal durch. du dagegen - drei mal.

            Kommentar


            • #7
              Ich laufe es entweder einmal oder dreimal durch.

              Das erste in_array kannst du ja weglassen, dann sind es immer zwei Durchläufe.

              Es käme auf eine Messung an, ob die nativen PHP-Funktion langsamer sind oder nicht, wo ist denn gleich der Hund, wenn man ihn braucht...

              Ganz ehrlich: Ich habe keine Ahnung, was schneller ist
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X