in_array case insensitive

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


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

      Naja, dann musses so gehen.

      Danke.

      Comment


      • #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...

        Comment


        • #5
          Hey, danke.

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

          Comment


          • #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.

            Comment


            • #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...

              Comment

              Working...
              X