array_key_exists auf mehrere arrays anwenden?

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

  • array_key_exists auf mehrere arrays anwenden?

    Hallo erstmal,

    Ich hab da eine simple Frage...
    Kann man mehrere Arrays irgentwie zusammenfügen und in diesem dann nach einem Key suchen?
    Also ich meine das ungefähr so:

    PHP-Code:
    $array1 = array("bla1""bli1""blub1");
    $array2 = array("bla2""bli2""blub2");
    ...
    $array10 = array("bla10""bli10""blub10");

    $array_all = array($array1$array2, ..., $array10);

    if(
    array_key_exists("bla2"$array_all)) echo "Gefunden"
    Geht sowas?

  • #2
    Ginge schon, hat in deinem Beispiel aber keinen Sinn, da dein Array $array_all nur die Keys 0 bis 9 hat.

    http://php.net/manual/en/function.array.php

    Kommentar


    • #3
      wieso nur bis 9?
      Bei dem Link steht aber nix über mein Problem, zumindest find ichs net.. oder ist das das hier?

      PHP-Code:
      $fruits = array (
         
      "fruits"  => array("a" => "orange""b" => "banana""c" => "apple"),
         
      "numbers" => array(123456),
         
      "holes"  => array("first"=> "second""third")
      ); 
      Dann könnt ich es auch so machen:

      PHP-Code:
      $array_all = array (
        
      "array1" => array("bla1""bli1""blub1");
        
      "array2" => array("bla2""bli2""blub2");
        ...
        
      "array10" => array("bla10""bli10""blub10");
      );

      if(
      array_key_exists("bla2"$array_all)) echo "Gefunden"

      Kommentar


      • #4
        Könntest du, aber dann existiert der Key "bla2" trotzdem nicht sondern nur die Keys "array1" bis "array10".
        "bla2" ist einfach kein Key sondern ein Wert. Und zwar der von $array_all['array2'][0].

        Mir scheint, du hast das Prinzip von Arrays und Keys noch nicht ganz verstanden. Lies dir die oben gelinkte Seite mal komplett durch, auch die Codebeispiele und Userkommentare.

        Kommentar


        • #5
          PHP-Code:
          $array[0] = array("bla1""bli1""blub1");
          $array[1] = array("bla2""bli2""blub2");
          ...
          $array[10] = array("bla10""bli10""blub10");

          $gefunden false;
          foreach(
          $array AS $search)
            if(
          in_array("bla2"$search)) $gefunden true;
            
          if(
          $gefunden) echo ("Gefunden !!!"); 
          versuchs mal so


          EDIT:

          Original geschrieben von onemorenerd
          Wenn du in zonthors Code das array_key_exists() durch in_array() ersetzt, mags hinhauen.
          du hast natürlich recht

          Zuletzt geändert von zonthor; 30.04.2006, 16:44.

          Kommentar


          • #6
            Wenn du in zonthors Code das array_key_exists() durch in_array() ersetzt, mags hinhauen.

            Kommentar


            • #7
              Oder wir machen 2 functionen, die beide Fälle abdecken
              und die suche nach Werten und Schlüssel in multidemensionalen arrays erlauben
              PHP-Code:
              #----------------------
              # sucht ein wert in multidemensionalem array
              # @return boolean
              #-------------------------------------
              function multi_in_array($wert,$array){
                if(
              is_array($array)){
                if(
              in_array($wert,$array))return true;
                 foreach(
              $array as $w){
                  if(
              multi_in_array($wert,$w))return true;
                 }
                }
                return 
              false;
              }

              #----------------------
              # sucht ein Slüssel in multidemensionalem array
              # @return boolean
              #-------------------------------------
              function multi_kay_exist($kayname,$array){
                if(
              is_array($array)){
                if(
              array_key_exists($kayname,$array))return true;
                 foreach(
              $array as $w){
                  if(
              multi_kay_exist($kayname,$w))return true;
                 }
                }
                return 
              false;
              }
              #------------------------------------

              //test
              $array[0] = array("bla1""bli1""blub1");
              $array[1] = array("bla2""bli2""blub2");
              $array[3] = array("bla10""bli10", array("a"=>"blub10"));

              if(
              multi_in_array("blub10",$array))echo "blub10 gefunden<br />";
              else echo 
              "blub10 nicht gefunden<br />";
              if(
              multi_in_array("blub20",$array))echo "blub20 gefunden<br />";
              else echo 
              "blub20 nicht gefunden<br />";
              if(
              multi_kay_exist("a",$array))echo "kay 'a' gefunden<br />";
              else echo 
              "kay 'a' nicht gefunden<br />";
              if(
              multi_kay_exist(1,$array))echo "kay 1 gefunden<br />";
              else echo 
              "kay 1 nicht gefunden<br />";
              if(
              multi_kay_exist(40,$array))echo "kay 40 gefunden<br />";
              else echo 
              "kay 40 nicht gefunden<br />"
              Zuletzt geändert von Slava; 30.04.2006, 19:31.
              Slava
              bituniverse.com

              Kommentar


              • #8
                Danke dir zonthor ,

                Deine Möglichkeit ist ein bisschen zu komplex... trozdem auch dir vielen dank Slava

                Kommentar


                • #9
                  Original geschrieben von Schanz

                  Deine Möglichkeit ist ein bisschen zu komplex... trozdem auch dir vielen dank Slava
                  warum komplex?
                  das sind nur 2 functionen, die du einfach benutzen kannst!!!
                  wenn die function von innen unverständlich ist, dann benutze sie als black-box, dich müssen nur name, parameter, rückgabe-typ und endergebnis interessieren.
                  echo oder print hast du auch bestimmt schon benutzt, ohne zu wissen wie diese functionen wirklich aufgebaut sind.

                  Oder hat hier jemand andere Meinung?
                  Zuletzt geändert von Slava; 30.04.2006, 23:42.
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    für das zusammenfügen gibt es array_merge() in den Array-Funktionen .

                    http://www.php-resource.de/manual.ph...on.array-merge
                    http://www.php.net/manual/de/function.array-merge.php

                    für das Suchen in den Daten: array_search, und wie schon genannt in_array
                    für das Suchen in den Keys (hier aber n/a) wie schon genannt array_key_exists

                    Viel Erfolg bei Zusammenfügen der arrays mit array_merge, und dem Suchen mit array_search.

                    Kommentar


                    • #11
                      Ja Slave das habe ich... Vieleicht habe ich mich falsch ausgedrückt.... Deine Lösung ist natürlich auch gut aber die von zonthor tuts auch nur mit weniger code...
                      Ja vierteln genau das hab ich gesucht.. komisch das ich das net gefunden habe
                      Aber jetzt nochetwas... Ich habe jetzt den Lösungsweg von zonthor genommen, gibt es da eine möglichkeit herauszufinden in welcher Variable das gefundene Wort steht? also:

                      PHP-Code:
                      $array[0] = array("bla1""bli1""blub1");
                      $array[1] = array("bla2""bli2""blub2");
                      ...
                      $array[10] = array("bla10""bli10""blub10");

                      $gefunden false;
                      foreach(
                      $array AS $search)
                        if(
                      in_array("bla2"$search)) $gefunden true;
                        
                      if(
                      $gefunden) echo ("Gefunden !!! und steht in Variable $array[1]"); 

                      Kommentar


                      • #12
                        PHP-Code:
                        $array[0] = array("bla1""bli1""blub1");
                        $array[1] = array("bla2""bli2""blub2");
                        ...
                        $array[10] = array("bla10""bli10""blub10");

                        foreach (
                        $array as $k => $search)
                          if (
                        in_array("bla2"$search)) {
                             echo (
                        'Gefunden in $array['.$k.'].');
                             break;
                          } 

                        Kommentar


                        • #13
                          Juchu, funktioniert Prima
                          Danke, danke, danke

                          Kommentar

                          Lädt...
                          X