Ankündigung

Einklappen
Keine Ankündigung bisher.

in_array() funktioniert nicht bei mehrdimensionalen Arrays?

Einklappen

Neue Werbung 2019

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

  • in_array() funktioniert nicht bei mehrdimensionalen Arrays?

    $menueid ist z.B. "bla1"...

    Code:
    $intros = array(
    
    	"bla1"=>"bla1.html",
    	"bla2"=>"bla2.html"
    
    );
    
    if(in_array($menueid,$intros)){...}
    Wieso wird das ignoriert?

  • #2
    wieso mehrdimensional?
    da wird nichts ignoriert, es ist doch kein element von $intros bla1

    /edit: 'bla1'

    Kommentar


    • #3
      das array ist nicht mehrdimensional, sondern assoziativ. wenn du willst, dass sowohl key als auch werte überprüft werden, mach es so:

      PHP-Code:
      <?php
      function somewhere_in_array($needle,$array) {
         return (
      in_array($needle,$array) OR isset($array[$needle]));
      }
      ?>
      [edit] hab waq's vorschlag eingebaut.

      Kommentar


      • #4
        statt in_array($needle,array_keys($array)) besser
        isset($array[$needle])
        mod = master of disaster

        Kommentar


        • #5
          un herauszufinden, ob ein schlüssel in einem array existiert, gibt es in php die funktion: array_key_exists()

          Kommentar


          • #6
            Und wenn man http://de.php.net/array_key_exists mal liest (incl. Kommentaren), benutzt man doch isset().
            mod = master of disaster

            Kommentar


            • #7
              Zitat von Waq
              Und wenn man http://de.php.net/array_key_exists mal liest (incl. Kommentaren), benutzt man doch isset().
              danke für den hinweis, habe gerade einen benchmark gemacht: isset() ist mehr als doppelt so schnell!

              konnte ich gut gebrauchen, da ich gerade ein skript optimiere

              Kommentar

              Lädt...
              X