Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] array() und Hashes

Einklappen

Neue Werbung 2019

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

  • [Erledigt] array() und Hashes

    Mir ist nicht ganz klar, wann man array() benutzen soll/muss.
    Vielleicht kann jemand für Aufklärung sorgen. Wäre dankbar.
    Hier mal ein Beispiel:
    PHP-Code:
    $ansArray = array();
    for (
    $j=1$j<10$j++){
        
    $qid = {irgendeine Zahl};
        
    $i = {bla foo};
        
    $ansArray[$qid][$i]++;                                
        
    $ansArray[$qid]['votes']++;
        
    $ansArray[$qid]['xyz'] = {dies und jenes};

    PS: {irgendwas} ist irgendeine Variable.
    Haben wir hier nun Arrays oder Hashes? Sind alles Hashes?
    Braucht man nie array() zu benutzen?
    Jedenfalls habe ich festgestellt, dass es keine gute Idee ist, das hier zu machen:
    PHP-Code:
    $ansArray[$qid] = array(); 
    Dann wird nur noch $ansArray[$qid]['xyz'] gefunden. Was geht da dann schief?

  • #2
    Hier findest Du die Antworten zu deinen Fragen:

    infos24 PHP ->Arrays und Hashes

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      OK

      Ja, da war ich schon. Da wird immer array() benutzt.
      Soll also heissen, man soll immer array() benutzen, weil ein Hash auch nur ein Array ist.
      Ich denke ich weiss jetzt auch warum mir
      PHP-Code:
      foreach ($ansArray[$qid] as $key => $value
      zuwenig ausgegeben hat. Ich habe wohl array() zu oft in ner Schleife benutzt und vorherige Werte ins Nirvana geschickt.

      Kommentar


      • #4
        Ich weiß noch nicht genau was du gemacht hast. Wo hast du denn array() angewendet?

        Hashes gibt es so gesehen in PHP nicht. Ein Array besteht immer aus einem Key und einem Value. Du wirst wahrscheinlich den Key mit einem Hash verwechseln. Da PHP aber assoziative Arrays unterstützt braucht man keine Hashes.

        "array()" verwendet man um eine Variable zu initialisieren. In deinem Beispiel würde es schon Sinn machen es zu verwenden:

        PHP-Code:
        $ansArray = array();
        for (
        $j=1$j<10$j++){
            
        $qid = {irgendeine Zahl};
            
        $i = {bla foo};
            
        $ansArray[$qid] = array(); // hier wird die Variable initialisiert (es ist wieder ein Array)
            
        $ansArray[$qid][$i]++;                                
            
        $ansArray[$qid]['votes']++;
            
        $ansArray[$qid]['xyz'] = {dies und jenes};

        Nach der Initialisierung kannst du dann beliebige Key => Value Paare ins Array schreiben. Davor ist PHP nicht bekannt das $ansArray[$qid] wieder ein Array sein soll (ist ja noch gar nicht initialisiert). Funktionieren tut es aber trotzdem da PHP das automatisch als Array anlegt, sauber ist es aber trotzdem es erst zu initialisieren.

        Würdest du array() benutzen nachdem du schon einzelne Key => Value Paare in $ansArray[$qid] geschrieben hast wird diese Variable wieder durch ein leeres Array ersetzt/neu initialisiert.

        Kommentar


        • #5
          so, so

          OK, es macht also Sinn, das hier zu machen:
          PHP-Code:
          $ansArray[$qid] = array(); 
          Aber das ist eben auch nicht immer gut, z.B. falls die $qid mehrmals dran kommt. Bei meinem Beispiel kann man ja schon erahnen, dass das der Fall ist.
          Ich mach es nun so:
          PHP-Code:
          if (!is_array($ansArray[$qid])) $ansArray[$qid] = array(); 
          OK?

          Kommentar


          • #6
            Keine Ahnung wo du es bei dir eingebaut hast. Aber bevor $ansArray[$qid] nicht initialisiert ist macht es schon es mit array() vor zu belegen. Danach macht es nur dann Sinn wenn du nen leeres Array brauchst.

            Kommentar


            • #7
              Was soll denn dieser kryptische Mist? Wenn Du eine Frage hast, dann stell sie mit echten Werten und konkreten Beispielen! Kein Mensch weiß, was DU willst.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar

              Lädt...
              X