Ankündigung

Einklappen
Keine Ankündigung bisher.

multidimensionales Array aus Textdatei

Einklappen

Neue Werbung 2019

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

  • multidimensionales Array aus Textdatei

    Liebes Forum,

    ich hab gerade das Netz nach der Problematik durchsucht - aber mir fehlen am Ende die richtigen Stichworte ...

    Ich hab ne .txt Datei, welche |-separierte Daten beinhaltet, die via EXPLODE in einem Array gespeichert werden. Es handelt sich hierbei um 6 Sachen die in einem Shop-System angeboten werden (das Array beinhaltet nun Ware, Bild, Beschreibung und Preis). Allerdings sind nun T-Shirts hinzugekommen, und damit die Variablen Größe und Farbe. Die sollen nun mit in das Array mit rein, bilden aber selbst ein Array.

    Array1(Ware[1-6],Bild[1-6],Beschreibung[1-6],Preis[1-6],

    Array2(Größe[1-3],Farbe[1-6]))

    irgendwie so ...

    Dazu muss ich aber natürlich die Textdatei entsprechend auslesen. Wie kann ich das realisieren?

    Mein bisheriger Code:

    Code:
    foreach($data as $k=>$v) {	
    		$tmp = explode("|", $v);
    		$waren[$tmp[0]]["Name"] = $tmp[1];
    		$waren[$tmp[0]]["Beschreibung"] = $tmp[2];
    		$waren[$tmp[0]]["Bild"] = $tmp[3];
    		$waren[$tmp[0]]["Preis"] = $tmp[4];
    wo kommt jetzt das explode zu den ausgelesenen Grössen und Farben hinzu? Wie werden die entsprechenden Daten zu den jeweiligen Waren zugeordnet?

    Grüsse Franko[/code]

  • #2
    Nehmen wir an, du machst das so:

    Code:
    Name|Beschreibung|Bild|Preis|größe|farbe
    Dann kannst du das so machen:

    Code:
    foreach($data as $k=>$v) {   
          $tmp = explode("|", $v);
          $waren[$tmp[0]]["Name"] = $tmp[1];
          $waren[$tmp[0]]["Beschreibung"] = $tmp[2];
          $waren[$tmp[0]]["Bild"] = $tmp[3];
          $waren[$tmp[0]]["Preis"] = $tmp[4];
           $waren[$tmp[0]]["groesse"] = $tmp[5];
          $waren[$tmp[0]]["farbe"] = $tmp[6];
          }

    Kommentar


    • #3
      he wilko,

      ja aber dann speicherts doch nur (Beispiel)

      t-shirt, t-shirt.gif, ..., 10€, S;M, blau;gelb;grün

      jetzt will ich aber S;M und blau;gelb;grün als jeweils seperates Array speichern -->

      t-shirt, t-shirt.gif, ..., 10€, array (s,m), array (blau,gelb,grün)

      Da hab ich sozusagen gedacht:

      Code:
      	foreach($data as $k=>$v) {		
      		$tmp = explode("|", $v);
      		$waren[$tmp[0]]["Name"] = $tmp[1];
      		$waren[$tmp[0]]["Beschreibung"] = $tmp[2];
      		$waren[$tmp[0]]["Bild"] = $tmp[3];
      		$waren[$tmp[0]]["Preis"] = $tmp[4];
      		$waren[$tmp[0]]["Grösse"] = $tmp[5];
      		$waren[$tmp[0]]["Farbe"] = $tmp[6];
      		$g_array = explode(";", $tmp[5]);
      		$f_array = explode(";", $tmp[6]);
      }
      aber dat funzt ni!

      Frank

      Kommentar


      • #4
        Wenn du das so machst, müsste es aber gehen!

        Code:
        foreach($data as $k=>$v) {      
              $tmp = explode("|", $v);
              $waren[$tmp[0]]["Name"] = $tmp[1];
              $waren[$tmp[0]]["Beschreibung"] = $tmp[2];
              $waren[$tmp[0]]["Bild"] = $tmp[3];
              $waren[$tmp[0]]["Preis"] = $tmp[4];
              $waren[$tmp[0]]["groesse"] = explode(";", $tmp[5]);
              $waren[$tmp[0]]["Farbe"] = explode(";", $tmp[6]);
        }

        Kommentar


        • #5
          He Wilko,

          rockt wie Hölle. Ich hab nur noch ein Ausleseproblem!

          Ich will sozusagen automatisch Checkboxen daraus generieren.

          Folgender Code bis nun:

          Code:
          echo '
          							</table>
          							<table border="1" cellpadding="0" cellspacing="0">
          							<tr>
          						
          ';
          
          foreach ($v["Grösse"] as $value) {
          							if ($value<>""){
          	    
                              echo'
          							    <td class="tablebody" align="right">
          							    <input name="" type="checkbox" title= value="">'.$value.'
          							    </td>
          							    </tr>
          	    ';
                         }
          }
          Da legt er mir auch eine Tab an in dem er 1 Spalte mit 2 Zeilen erstellt.
          Nun will ich aber in einer zweiten Spalte daneben die jeweiligen Farben - erscheinen lassen (die Länge des Farben-Arrays ist länger als die des Grössen-Arrays --> also muss er auch eine Prüfung mit if $value="" einbauen).

          Wo bind ich jetzt dieses Grössen-Array ein.

          Tschuldigung is ein simples Verständnisproblem...

          Franko
          [/code]

          Kommentar


          • #6
            Ich verstehe noch nicht ganz, was du meinst!

            Möchtest du in einer Tabelle, in der Linken Spalte alle Größen und in der Rechten Spalte alle Farben?


            wilko[/code]

            Kommentar


            • #7
              yipp!

              und Danke, dass Du Dich der Sache so annimmst!

              Franko

              Kommentar


              • #8
                War weg....so, jetzt zur Antwort:

                Code:
                $zahl = count($v["Grösse"]);
                for($i=0;$i<$zahl;$i++)
                {
                if($v["Grösse"][$i])
                {
                echo'
                                         <td class="tablebody" align="right">
                                         <input name="" type="checkbox" title= value="">'.$value.'
                                         </td>
                       '; 
                }
                esle
                {
                echo'
                                         <td class="tablebody" align="right">
                                         </td>
                       '; 
                }
                if($v["farbe"][$i])
                {
                echo '<td>'.$v["farbe"][$i].'</td>';
                }
                }
                wilko

                Kommentar

                Lädt...
                X