Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe: Problem mit einem Array

Einklappen

Neue Werbung 2019

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

  • Hilfe: Problem mit einem Array

    Hallo zusammen,

    ich habe folgenden Code.

    PHP-Code:
        foreach ($aMyArray as $bild_name => $inhalt)
        {
            
    $bild[$bild_name]  = strtolower$inhalt['bild_name'] );
            
    $link 'http://'.$bild[$bild_name];
            
            
    $bild_mail_build '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>';
            
            
    $array[] = $bild_mail_build;
            
    print_r(array_pop($array));
        } 
    Bis hier ist alles super. Es werden genau die Datensätze im Array angezeigt die ich auch möchte.

    Jetzt möchte ich allerdings das ganze hier integrieren - da ist das Problem. Es wird nur der letzte Datensatz angezeigt. Hat wer ne Idee wie das funktionieren könnte???

    PHP-Code:
                $message '
                            <html>
                                <head>
                                    <title>E-Mail Bilder </title>
                                    <link href=\'http://fonts.googleapis.com/css?family=Oswald:400,300\' rel=\'stylesheet\' type=\'text/css\'>
                                </head>
                                
                                <body>

                HIER SOLL DIE AUSGABE DES GESAMTEN ARRAYS STATT FINDEN. 

                                </body>
                        </html>
                            '


  • #2
    PHP-Code:
    HIER SOLL DIE AUSGABE DES GESAMTEN ARRAYS STATT FINDEN
    ...und wie hast Du das probiert?
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      PHP-Code:
      $message .= '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>'

      Kommentar


      • #4
        Mich wundert das in deinem Array nach der Schleife überhaupt noch was drin steht.
        So wie ich die Beschreibung des Manuals verstehe macht dein Code alles richtig. Dein Array ist am Ende leer und dein print_r zeigt den zu letzt übergebenen Datensatz an.

        http://php.net/manual/de/function.array-pop.php


        @edit: Jetzt versteh ich dich...denke ich: ja dein print_r zeigt selbstverständlich immer den letzten Datensatz...bzw. den letzten String. Nach der Schleife ist dein Array völlig leer.
        Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

        Kommentar


        • #5
          Zitat von moma Beitrag anzeigen
          PHP-Code:
          $message .= '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>'


          und genau hier liegt das Problem. Er fügt ja auch ein Bild bzw. ein Link ein. Aber halt nicht alle die in dem Array drin stehen. Die message steht auch ausserhalb der foreach.

          Unter der foreach kommt eine E-Mail Generierung wo die Message eingepflegt werden soll. Wenn ich das ganze in die foreach packe schickt er je nach dem wie viele Werte das Array hat auch dementsprechend Mails raus. Also nicht so komfortabel.

          Kommentar


          • #6
            Wie Moewe schon sagt, dürfte in Deinem Array gar nichts drin stehen.
            Prüf das mal nach der foreach mit
            PHP-Code:
            var_dump$array ); 
            Ich denke, Du musst das array_pop einfach weglassen und an der Stelle, wo Du die Ausgabe haben willst mit implode arbeiten!
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              1. Varaible in Schleife ergänzend befüllen (der Punkt bei .= ist wichtig!)

              PHP-Code:
              $bild_mail_build  ""// leer vor Schleife initialisieren

              foreach (...) {
                  
              // ...
                  // string mit dem aktuellem Eintrag ergänzen
                  
              $bild_mail_build .= '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>';

              2. die beiden weg, sind unnötig

              PHP-Code:
                      $array[] = $bild_mail_build
                      
              print_r(array_pop($array)); 
              3. und an der Stelle der gewünschten Ausabe $bild_mail_build ergänzen/ausgeben lassen.

              PHP-Code:
              //...
              ' ...  <body>' $bild_mail_build '</body>... ' 
              Fertig. Eben hast du die EVA kennengelernt http://php-de.github.io/jumpto/eva-prinzip/

              LG
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Das Beispiel im Manual zeigt es eigentlich ganz schön, was da passiert

                PHP-Code:
                $stack = array("Orange""Banane""Apfel""Himbeere");
                $fruit array_pop($stack);
                print_r($stack); 
                Das ganze gibt
                Array
                (
                [0] => Orange
                [1] => Banane
                [2] => Apfel
                )
                aus.

                Du jedoch machst im grunde das hier:
                PHP-Code:
                $stack = array("Orange""Banane""Apfel""Himbeere");
                $fruit array_pop($stack);
                print_r($fruit); 
                und siehst natürlich
                Array
                (
                [0] => Himbeere
                )
                Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                Kommentar


                • #9
                  Zitat von Arne Drews Beitrag anzeigen
                  Wie Moewe schon sagt, dürfte in Deinem Array gar nichts drin stehen.
                  Prüf das mal nach der foreach mit
                  PHP-Code:
                  var_dump$array ); 
                  Ich denke, Du musst das array_pop einfach weglassen und an der Stelle, wo Du die Ausgabe haben willst mit implode arbeiten!
                  also bei var_dump habe ich alles schön gefüllt. wenn ich dann array_pop nehme habe ich genau das was ich möchte.

                  Kommentar


                  • #10
                    Zitat von daniel1405 Beitrag anzeigen
                    Die message steht auch ausserhalb der foreach.
                    foreach muss ja auch innerhalb der message blöcke stehen. so soll es ja auch augegeben werden.
                    und bedenke bitte hauls zeiten punkt.

                    Kommentar


                    • #11
                      Zitat von hausl Beitrag anzeigen
                      1. Varaible in Schleife ergänzend befüllen (der Punkt bei .= ist wichtig!)

                      PHP-Code:
                      $bild_mail_build .= '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>'
                      2. die beiden weg, sind unnötig



                      3. und an der Stelle der gewünschten Ausabe $bild_mail_build ergänzen/ausgeben lassen.

                      PHP-Code:
                      //...
                      ' ...  <body>' $bild_mail_build '</body>... ' 
                      Fertig. Eben hast du die EVA kennengelernt http://php-de.github.io/jumpto/eva-prinzip/

                      das habe ich mal gemacht. in der schleife habe ich
                      PHP-Code:
                      $bild_mail_build .= '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>'
                      geschrieben.

                      und dann wo die ausgabe erscheinen soll
                      PHP-Code:
                      '.$bild_mail_build.' 
                      es werden auch 2 bilder angezeigt. jedoch die gleichen und nicht die verschiedenen wie sie oben im array stehen.

                      ganz konfus das ganze.

                      Kommentar


                      • #12
                        Zeig mal den aktuellen Code der Schleife
                        The string "()()" is not palindrom but the String "())(" is.

                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          Zitat von hausl Beitrag anzeigen
                          Zeig mal den aktuellen Code der Schleife
                          hier der aktuelle code der schleife

                          PHP-Code:
                              foreach ($aMyArray as $bild_name => $inhalt)
                              {
                                  
                          $bild[$bild_name]  = strtolower$inhalt['bild_name'] );
                                  
                          $link 'http://'.$bild[$bild_name];
                                  
                                  
                          $bild_mail_build .= '<img src="'.$link.'" height="100px" width="100px"><a href="'.$link.'" target="_blank"> &Ouml;ffnen </a></img>';
                                  
                              } 
                          und weiter unten schaut es dann so aus.

                          PHP-Code:
                                      $message '
                                                  <html>
                                                      <head>
                                                          <title></title>
                                                          <link href=\'http://fonts.googleapis.com/css?family=Oswald:400,300\' rel=\'stylesheet\' type=\'text/css\'>
                                                      </head>
                                                      
                                                      <body>
                                              '
                          .$bild_mail_build.'
                                                
                                                
                                                      </body>
                                              </html>
                                                  '

                          Kommentar


                          • #14
                            Halt stop.

                            Funktioniert nun. Hatte doch noch einen kleinen bock drin. Ich danke euch vielmals für eure hilfe. Vielen dank!

                            Kommentar


                            • #15
                              dann is ja gut

                              Vor der Schleife solltest du übrigens noch ein
                              PHP-Code:
                              $bild_mail_build ""
                              machen, sonst gibt es eine Notice beim ersten Array-Durchlauf.
                              The string "()()" is not palindrom but the String "())(" is.

                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar

                              Lädt...
                              X