array

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

  • array

    Hallo !

    Ich möchte für jeden Wert eines Arrays eine Aktion festlegen, hab aber keine Ahnung wie. Mit folgedem Code hat es nicht geklappt:

    while(list $Key, $Val) = each($array)) {
    ...
    }

    Wie mach ich das ?

    Gruß Christian

  • #2
    du hast mehrere Möglichkeiten:
    Code:
    $array["Hallo"]="Welt";
    $array["Welt"]="Ade";
    reset ($array);
    
    // ENTWEDER
    
    while (list($key,$val)= each ($array)) {
       echo $key." ".$val."<br>";
       // Ausgabe würde zuerst "Hallo Welt" und dann "Welt Ade" lauten
       // also in $key steht der "Name" des Arrays (bei nicht
      // assoziativem Array steht da dann 0,1,2,3...)
      // und $val ist der Wert
       }
    
    // ODER
    
    function array_ausgabe($val,$key) {
       echo $key." ".$val."<br>";
       }
    
    array_walk($array, "array_ausgabe");
    // hier wird für jeden Array-Inhalt die angegebene Funktion
    // aufgerufen.
    // Mehr siehe [url]http://www.php.net/manual/de/function.array-walk.php[/url]
    // wichtig ist hier auf jeden Fall reset($array);
    // vor dem array_walk() aufzurufen
    Um die Übersicht zu wahren, achtet bitte darauf, daß bei code die Zeilen nicht zu lang werden. Danke.

    [Editiert von Titus am 26-07-2001 um 10:03]

    Kommentar


    • #3
      Hallo !

      Also, ich hab mich für die erste methode entschieden, diese auch gleich benutzt. Allerdings gibt es immer einen Parse-Fehler bei der while-Schleife, und ich weiss nicht ob der Code so erlaubt ist.

      $result = mysql_db_query ($db, "SELECT * FROM $warenkorbid ORDER BY Nummer");
      while ($row = mysql_fetch_array ($result)) {
      $mailbody=<<<body
      <tr><td align="center" width="25%"><font face="arial" size="4">$row[bestellnummer]</font></td>
      <td align="center" width="25%"><font face="arial" size="4">$row[groesse]</font></td>
      <td align="center" width="25%"><font face="arial" size="4">$row[anzahl]</font></td>
      <td align="center" width="25%"><font face="arial" size="4">$row[preis]</font></td></tr>
      body;

      }

      Gruß Christian


      [Editiert von Christian Seitz am 26-07-2001 um 19:28]

      Kommentar


      • #4
        Code:
        <?
        $result = mysql_db_query ($db, "SELECT * FROM $warenkorbid ORDER BY Nummer"); 
        while ($row = mysql_fetch_array ($result)) { 
        $mailbody.='<tr><td align="center" width="25%"><font face="arial" size="4">$row[bestellnummer]</font></td> 
        <td align="center" width="25%"><font face="arial" size="4">$row[groesse]</font></td> 
        <td align="center" width="25%"><font face="arial" size="4">$row[anzahl]</font></td> 
        <td align="center" width="25%"><font face="arial" size="4">$row[preis]</font></td></tr>'; 
        } 
        ?>
        <html><body><table>
        <? echo $mailbody; ?>
        </table>
        </body></html>
        du mußt auf jeden Fall die Zuweisung deiner Variable $mailbody entweder in ' Hochkommas oder in " Anführungszeichen setzen. Da du HTML-Code zuweist, macht da das Wort body ohne Tag-Zeichen doch wenig Sinn, oder?

        Kommentar


        • #5
          Ahso die Quotes... *g*
          ein blöder Fehler
          Aber jetzt funktioniert es...
          nur nimmt mein blöden outlook die Html-Mail nicht als Html an, sonder als Text-Datei. Fehlt da ein Header oder so ?

          [Editiert von Christian Seitz am 27-07-2001 um 19:28]

          Kommentar

          Lädt...
          X