Marco: Drei Array durchlaufen

Hallo zusammen

Ich habe eine kleine Frage und zwar möchte ich zwei Array durchlaufen und die werte nebeneinander schreiben da ich es
dann per Mail versende.

So sieht es aus:

****************************************************

foreach($_SESSION[produkt] as $produkte) {

$mitteilung .= "".$produkte."\n";

}

foreach($_SESSION[anzahl] as $anzahl) {

$mitteilung .= "".$anzahl."\n";

}

foreach($_SESSION[preis] as $preis) {

$preis_total = $preis + $preis_total;

$mitteilung .= "".$preis."\n";

}

****************************************************

Nun sieht es im Mail so aus:

wheelbag-camo
cdx-black
6
1
270
180

Da zuerst alle Produkte aufgelistet werden und dann erst die Anzahl. Möchte aber, dass es so aussieht:

wheelbag-camo 6 270
cdx-black 1 180

wisst Ihr was ich meine?
Freue mich auf Eure Antworten.

Marco

  1. Mahlzeit,

    wisst Ihr was ich meine?

    Verschachtelte Schleifen?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo EKKI

      an das habe ich auch gedacht aber wenn ich das verschachtelt mache, dann läuft es ja z.b. dann die ganzen anzahl durch und dann erst wieder das produkt:

      also wenn ich es so mache:

      foreach($_SESSION[produkt] as $produkte) {

      $mitteilung .= "".$produkte."\n";

      foreach($_SESSION[anzahl] as $anzahl) {

      $mitteilung .= "".$anzahl."\n";

      }

      }

      oder?

      1. Mahlzeit,

        an das habe ich auch gedacht aber wenn ich das verschachtelt mache, dann läuft es ja z.b. dann die ganzen anzahl durch und dann erst wieder das produkt:

        Vielleicht solltest Du dann mal zeigen, was in Deinen Arrays steckt. Mir schwant da nämlich gerade etwas ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo Ekki

          Also das hier steckt in meinen Arrays

          $_SESSION[produkt]:
          wheelbag-camo
          cdx-black

          $_SESSION[anzahl]:

          6
          1

          $_SESSION[preis]:

          270
          180

          1. Mahlzeit,

            Also das hier steckt in meinen Arrays

            Und was bedeutet das inhaltlich?

            Ich sehe da nur 3 voneinander unabhängige Arrays, die irgendwelche zufälligen Werte enthalten.

            <herumraten wie="wild">Handelt es sich beim ersten Array vielleicht um bestellte Produkte, beim zweiten um die bestellte Anzahl und beim dritten um den jeweiligen Preis? Sollen die bestellten Produkte, ihre jeweils bestellte Anzahl sowie der entsprechende Preis vielleicht über gleiche Array-Indizes zueinander gehören?</herumraten>

            Vielleicht solltest Du Dir nochmal grundsätzlich Gedanken darüber machen, WIE du WELCHE Daten in der Session abspeicherst, so dass Du einfacher und strukturierter darauf zugreifen kannst ...

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Hallo Ekki

              Nun es ist genau so wie Du sagst:

              es ist das Produkt, Preis und Anzahl.

              Möchte es gerne in diesen Arrays lassen einfach nur, dass es nun
              im Mail nebeneinander erscheint also nicht erst alle Produkte auflistet und dann erst den Preis und Anzahl.

              Sonder das es so kommt:

              Produkt - Preis - Anzahl
              Produkt - Preis - Anzahl

              Und nicht wie momentan:

              Produkt
              Produkt
              Preis
              Preis
              Anzahl
              Anzahl

              Weisst Du was ich meine...?

              Danke für Deine Bemühungen.
              Marco

              1. Mahlzeit,

                Weisst Du was ich meine...?

                Ich weiß, was Du meinst. Und ich rate Dir nochmals davon ab, diesen Weg weiter zu verfolgen. Bei zwei Produkten mit jeweils einer Anzahl und einem Preis mag es vielleicht eine mittelkomplizierte Lösung geben - aber spätestens, wenn da noch ein paar mehr Informationen dazukommen, hier noch ein Array und da noch ein Schleifchen und Du Dich im Spaghetticode vollkommen verheddert hast, wirst Du anfangen, irgendjemanden zu verfluchen.

                Und da ich das nicht sein will, werde ich Dir keine Pseudo-Lösung für ein Problem, dessen Ursachen an ganz anderer Stelle liegen, präsentieren ... :-)

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Hallo Ekki

                  Huii, klingt problematisch mein vorgehen :-)

                  Wie würdest Du es denn machen? Ein Array wo alles drin steht?
                  Wenn ja, wie lese ich dass dann aus? Oder was hast Du für einen
                  Vorschlag welcher professionell ist.

                  Marco

                  1. Mahlzeit,

                    Wie würdest Du es denn machen? Ein Array wo alles drin steht?
                    Wenn ja, wie lese ich dass dann aus? Oder was hast Du für einen
                    Vorschlag welcher professionell ist.

                    Wie ChrisB und ich schon vorschlugen ...

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hallo Ekki & Chris

                      Also ich werde alles in ein Array schreiben nur noch meine letzte
                      Frage, wie durchlaufe ich dass dann?

                      $_SESSION[warenkorb][preis]
                      $_SESSION[warenkorb][produkt]
                      $_SESSION[warenkorb][anzahl]

                      wie kann ich dass dann durchlaufen, so geht das ja dann nicht:

                      foreach($_SESSION[warenkorb] as $produkte) {

                      $mitteilung .= "".$produkte."\n";

                      }

                      1. Mahlzeit,

                        foreach($_SESSION[warenkorb] as $produkte) {

                        $mitteilung .= "".$produkte."\n";

                        }

                        Beispielsweise so:

                        foreach ($_SESSION["warenkorb"] as $produkte)
                        {
                          $mitteilung .= sprintf("%d %s - Preis: %.2f\n", $produkte["anzahl"], $produkte["produkt"], $produkte["preis"]);
                        }

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                        1. Hallo Marco,

                          foreach($_SESSION['warenkorb']['produkte'] as $key => $produkte)
                           {
                                $mitteilung .=
                                htmlspechialchars($produkte)."\t".
                                htmlspechialchars($_SESSION['warenkorb']['menge'][$key])."\t".
                                htmlspechialchars($_SESSION['warenkorb']['preis'][$key])."\r\n";)
                           }

                          Je nachdem, wie man die Einfügefunktion für Produkte geschreiben aht, müsste man eventuell noch mit isset() nachfragen, ob die Elemente ['preis'][$key] und ['menge'][$key] vorhanden sind, bevor man drauf zugreift.

                          LG
                          Chris©

                2. Hello Marco,

                  Ich weiß, was Du meinst. Und ich rate Dir nochmals davon ab, diesen Weg weiter zu verfolgen.

                  Und ich rate Dir zu, diesen Weg weiterhin konsequent zu verfolgen. Spätestens nach etwas Übung wirst Du erkennen, dass die Datenorganisation für diesen Zweck die geeignetste ist.

                  Für die Entwicklung der ntwendigen Funktionen stehe ich Dir gerne zur Verfügung.

                  Mach bitte die Ausgabe, um die ich Dich in https://forum.selfhtml.org/?t=162809&m=1059867 gebeten habe, und dann wird Dir (und vielleicht auch einigen Anderen) alles klar werden, wie man es machen kann[1].

                  [1] Ich sage hier bewusst 'kann', denn man 'muss' überhaupt nicht. Seine Daten kann jeder so organisieren, wie es ihm selber in den Kram passt, aber wenn ich Empfehlungen gebe, dann deshalb, weil ich sie dutzendfach selber ausprobiert habe und sehr wohl gegen andere Möglichkeiten abgewogen habe.

                  Harzliche Grüße vom Berg
                  http://bergpost.annerschbarrich.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                  1. Mahlzeit,

                    [1] Ich sage hier bewusst 'kann', denn man 'muss' überhaupt nicht. Seine Daten kann jeder so organisieren, wie es ihm selber in den Kram passt, aber wenn ich Empfehlungen gebe, dann deshalb, weil ich sie dutzendfach selber ausprobiert habe und sehr wohl gegen andere Möglichkeiten abgewogen habe.

                    Es KANN sein, dass diese Art der Strukturierung sinnvoll ist - jedoch NICHT, wenn man per "foreach()" durch die einzelnen Arrays geht und sich nicht mal sicher ist, dass die unterschiedlichen Arrays die gleichen Indizes verwenden (wie es ja in diesem Fall der Fall ist). Dann wirklich DEFINITIV nicht. Glaub mir. :-)

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hello,

                      Es KANN sein, dass diese Art der Strukturierung sinnvoll ist - jedoch NICHT, wenn man per "foreach()" durch die einzelnen Arrays geht und sich nicht mal sicher ist, dass die unterschiedlichen Arrays die gleichen Indizes verwenden (wie es ja in diesem Fall der Fall ist). Dann wirklich DEFINITIV nicht. Glaub mir. :-)

                      Deshalb diskutieren wir ja hier.
                      1. Schritt: Sich Überblick verschaffen
                      2. Schritt: einen Plan machen
                      3. Schritt: den Plan konsequent einhalten.

                      Dann geht auch nichts schief.

                      Harzliche Grüße vom Berg
                      http://bergpost.annerschbarrich.de

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

          2. Hi,

            Also das hier steckt in meinen Arrays

            $_SESSION[produkt]:
            wheelbag-camo
            cdx-black

            Und der Index ist nummerisch (nullbasiert, fortlaufend)?
            Dann verwende einfach eine For-Schleife, und greife ueber den Index auf die Array-Elemente zu.

            MfG ChrisB

            1. Hallo ChrisB

              Leider ist die Index nicht fortlaufend da es auch sein kann, dass ein Produkt gelöscht wurde bei der Bestellung dann wäre der index nicht mehr schön der Reihe nach! An die Idee habe ich auch schon
              gedacht aber geht in diesem Fall leider nicht.

              Sonst noch eine Idee?

              Marco

              1. Hi,

                Sonst noch eine Idee?

                Vernuenftige Datenstruktur ueberlegen. Die vorliegende klingt, wie EKKi auch schon anmerkte, nach ziemlichem Kokolores.

                MfG ChrisB

                1. schon?

                  wieso preis, produkt und anzahl ist einfach je in einem separaten array. was ist daran soooo verkehrt?

                  wie wäre es denn besser?

                  marco

                  1. Hi,

                    wieso preis, produkt und anzahl ist einfach je in einem separaten array. was ist daran soooo verkehrt?

                    wie wäre es denn besser?

                    Na bspw. so, dass du preis, produkt und anzahl in einem Unter-Array hast.

                    $data = array(  
                      array('preis' => 225.79, 'produkt' => 4711, 'anzahl' => 2),  
                      array('preis' => 113.84, 'produkt' => 4712, 'anzahl' => 9),  
                      ...  
                    );
                    

                    MfG ChrisB

                  2. Mahlzeit,

                    wieso preis, produkt und anzahl ist einfach je in einem separaten array. was ist daran soooo verkehrt?

                    So ziemlich alles.

                    wie wäre es denn besser?

                    Beispielhaft:

                    $bestellung[] = Array("produkt" => $produkt, "anzahl" => $anzahl, "preis" => $preis);

                    usw.

                    So hast Du immer eine unzweifelhafte Zuordnung, was zueinander gehört. Allerdings würde ich an Deiner Stelle in jedem Fall dem Ratschlag von ChrisB folgen und eine vernüftigen Daten(bank)struktur verwenden.

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hello,

                      wieso preis, produkt und anzahl ist einfach je in einem separaten array. was ist daran soooo verkehrt?

                      So ziemlich alles.

                      wie wäre es denn besser?

                      Beispielhaft:

                      $bestellung[] = Array("produkt" => $produkt, "anzahl" => $anzahl, "preis" => $preis);

                      So hast Du immer eine unzweifelhafte Zuordnung, was zueinander gehört. Allerdings würde ich an Deiner Stelle in jedem Fall dem Ratschlag von ChrisB folgen und eine vernüftigen Daten(bank)struktur verwenden.

                      Das ist für die Bindung vollkommen unerheblich, _wie_ man seine zusammngehörogen Daten bindet, Hauptsache, man hat es sich als Kommentar dazugeschreiben, ob man es von "links nach schräg" oder von  "hinten nach oben" (oder wie war der Witz hier neulich?) gemacht hat. Es muss nur reproduzierbar sein.

                      Die Vorteile gegenüber dem einen einzigen Nachteil beim Löschen, der ja bei Anwendung meiner Löschfunktion (siehe Archiv) gar keiner ist, habe ich in https://forum.selfhtml.org/?t=162809&m=1059855 angedeutet.

                      Es ist alles nur eine Frage des Vorstellungsvermögens.

                      Da "Arrays" in PHP in Wirklichkeit sowieso keine Arrays sind (geschlossene Datenstruktur, bei der die (physische) Position des Datenelementes innerhalb der Speicherstruktur über den Index _berechenbar_ ist), sondern verkettete "Speicherelmente" (mMn nach in unspezifizierter Baumstruktur, aber darüber will ich heute nicht schon wieder streiten), ist es also sowieso egal, ob die logische Bindung spaltenorientiert oder zeilenorientiert geschieht. Ohne die implemnetierten Zugriffsmethoden für das Arrayelement kommt man sowie nicht heran an das Element.

                      Harzliche Grüße vom Berg
                      http://bergpost.annerschbarrich.de

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                2. Hello,

                  Vernuenftige Datenstruktur ueberlegen. Die vorliegende klingt, wie EKKi auch schon anmerkte, nach ziemlichem Kokolores.

                  Eine Datenstruktur in der Form

                  $_SESSION['basket']['produkt'] = array();
                  $_SESSION['basket']['menge'] = array();
                  $_SESSION['basket']['preis'] = array();
                  $_SESSION['basket']['geweicht'] = array();

                  mit korrespondieremdem Index ist durchaus kein Kokolores.
                  Man muss dann eben zum Ändern oder Löschen nur eine komplette Methode erstellen und kann nicht einfach sagen "unset(nummer x)" sondern muss eben ein unset in allen vorhandenen Zweigen durchführen. Dafür schreibt man sich aber nur einmal eine universelle Funktion (die ich hier übrigens schon x-mal gepostet habe, weil sie allgemeingültig ist) und das war's.

                  Für's Insert, Update und Darstellung benötigt man ja sowieso jeweils eine Methode. Das bedeutet also keinen Mehraufwand. Es ist somit egal, ob das Arrays zeilenoroentiert (Datensätze sind gebunden) oder spaltenorientiert (Spalten sind gebunden) aufgebaut ist.

                  Der Vorteil der Spaltenorientierung ist die Anwendbarkeit der normalen Arrayfunktionen für Sortierung, Summierung, Mittelwert, suchen, usw.

                  Harzliche Grüße vom Berg
                  http://bergpost.annerschbarrich.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                  1. Hi,

                    Eine Datenstruktur in der Form

                    $_SESSION['basket']['produkt'] = array();
                    $_SESSION['basket']['menge'] = array();
                    $_SESSION['basket']['preis'] = array();
                    $_SESSION['basket']['geweicht'] = array();

                    mit korrespondieremdem Index ist durchaus kein Kokolores.

                    M.E. schon.
                    Die korrespondierenden Daten werden durch nichts ausser ihre Position im jeweiligen Unterarray in Verbindung gehalten.

                    Nur mal bspw. irgendwo unbedacht eines der Unter-Arrays sortiert - und schon ist der Zusammenhang zu den anderen Daten beim Teufel. Happy Fehlersuching ...

                    Der Vorteil der Spaltenorientierung ist die Anwendbarkeit der normalen Arrayfunktionen für Sortierung, Summierung, Mittelwert, suchen, usw.

                    Ja, dass du davon ein eifriger Verfechter bist, weiss ich :-)

                    MfG ChrisB

                    1. Hello,

                      Eine Datenstruktur in der Form

                      $_SESSION['basket']['produkt'] = array();
                      $_SESSION['basket']['menge'] = array();
                      $_SESSION['basket']['preis'] = array();
                      $_SESSION['basket']['geweicht'] = array();

                      mit korrespondieremdem Index ist durchaus kein Kokolores.

                      M.E. schon.
                      Die korrespondierenden Daten werden durch nichts ausser ihre Position im jeweiligen Unterarray in Verbindung gehalten.

                      Falsch! Sie werden durch ihren korrespondierenden Index gebunden. Aber das schreib ich ja oben.

                      Nur mal bspw. irgendwo unbedacht eines der Unter-Arrays sortiert - und schon ist der Zusammenhang zu den anderen Daten beim Teufel. Happy Fehlersuching ...

                      Unbedacht sortiert ja uch kein Programmierer und der User der Seite kommt ans Programm nicht ran, oder? Bei der Sortierung eiens PHP-Arrays muss der Index nicht verändert werden. Es wird nur die Position des Elementes in seiner verketteten Liste verändert.

                      Der Vorteil der Spaltenorientierung ist die Anwendbarkeit der normalen Arrayfunktionen für Sortierung, Summierung, Mittelwert, suchen, usw.

                      Harzliche Grüße vom Berg
                      http://bergpost.annerschbarrich.de

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                    2. Hallo ChrisB, hier schreibt ChrisF :-)

                      Eine Datenstruktur in der Form
                      mit korrespondieremdem Index ist durchaus kein Kokolores.

                      M.E. schon.
                      Die korrespondierenden Daten werden durch nichts ausser ihre Position im jeweiligen Unterarray in Verbindung gehalten.

                      Sie werden durch ihren Index in Verbindung gehalten. Das ist dasselbe, wie die ID in einer Datenbank.

                      Nur mal bspw. irgendwo unbedacht eines der Unter-Arrays sortiert - und schon ist der Zusammenhang zu den anderen Daten beim Teufel. Happy Fehlersuching ...

                      Unbedacht sollte ein Programmierer auch nichts tun. Und bei einer bedachten Sortierung bleibt der Index erhalten.

                      LG
                      Chris©

                  2. Mahlzeit,

                    Eine Datenstruktur in der Form

                    $_SESSION['basket']['produkt'] = array();
                    $_SESSION['basket']['menge'] = array();
                    $_SESSION['basket']['preis'] = array();
                    $_SESSION['basket']['geweicht'] = array();

                    mit korrespondieremdem Index ist durchaus kein Kokolores.

                    IMHO doch. Produkt, Anzahl, Preis usw. sind Eigenschaften einer Position der Bestellung. Es gibt keinen ersichtlichen Grund, diese zu einer Position gehörenden Informationen nicht bei dieser Positionen, sondern in vollkommen voneinander unabhängigen Datenstrukturen zu speichern. Die Gefahr, die Zuordnung untereinander zu verlieren, ist - wie ChrisB schrieb - viel zu groß.

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hello,

                      Eine Datenstruktur in der Form

                      $_SESSION['basket']['produkt'] = array();
                      $_SESSION['basket']['menge'] = array();
                      $_SESSION['basket']['preis'] = array();
                      $_SESSION['basket']['geweicht'] = array();

                      mit korrespondieremdem Index ist durchaus kein Kokolores.

                      IMHO doch. Produkt, Anzahl, Preis usw. sind Eigenschaften einer Position der Bestellung. Es gibt keinen ersichtlichen Grund, diese zu einer Position gehörenden Informationen nicht bei dieser Positionen, sondern in vollkommen voneinander unabhängigen Datenstrukturen zu speichern.

                      Die Datenstrukturen sind nicht voneinander unabhöngig, sondern stehen über ihre Indexe in relation zueinander. Ein Ausflug in die Datenbankwelt solte Dir das eigentlich verdeutlichen.

                      Die Gefahr, die Zuordnung untereinander zu verlieren, ist - wie ChrisB schrieb - viel zu groß.

                      Die Gefahr besteht bei ordentlichen Programmieren, die etwas von ihrem Handwerk verstehen, _überhaupt_ _nicht_.

                      Im Übrigen werden an allen möglichen Stellen in PHP die Arrays (teilweise auf Wunsch) genauso "spaltenorientiert" zur Verfügung gestellt. ($_FILES, preg_match_all, ...)  Das hat mehrere gute Gründe. Einer davon ist die einfache Möglichkeit des Hinzufügens von Eigenschaften, ein weiterer  ist, dass sie so herum i.d.R. weniger Speicher benötigen. (Mach mal einen Versuch mit serialize(), dann wirds Du das sehen).

                      Nur, weil Du diese Denkweise der Datenorganisation bisher nicht kennst, weil Du wahrscheinlich Arrays  nur in ihrer klassischen Funktion kennengelernt hast bisher, ist mein Ansatz nicht falsch.

                      Aber das haben schon wesentlich fortgeschreittenere Leute hier nicht verstehen wollen bisher. das muss auch jeder selber wissen, wie er sich das Leben schwer macht mit den Arrays. Ich habe jedenfalls schon vor Längerem erkannt, dass es so herum (bei ein bisschen mehr Überlegung bei der Planung der Datenstrukturen) nur Vorteile hat gegenüber der anderen Variante.

                      Ich möchte darüber auf dieser Ebene auch nicht weiter diskutieren. Bitte nicht beleidigt sein, die Diskussionen dazu finden sich alle schon im Archiv. An einer Diskussion über die mögliche Weiterentwicklung der Ideen habe ich aber immer Interesse.

                      Harzliche Grüße vom Berg
                      http://bergpost.annerschbarrich.de

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                      1. Mahlzeit,

                        Aber das haben schon wesentlich fortgeschreittenere Leute hier nicht verstehen wollen bisher.

                        ...

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                        1. Hello,

                          Aber das haben schon wesentlich fortgeschreittenere Leute hier nicht verstehen wollen bisher.

                          ...

                          *grins*

                          Gehörst Du auch zu den Leuten, die sagen "Millionen Fliegen können nicht irren"?

                          Harzliche Grüße vom Berg
                          http://bergpost.annerschbarrich.de

                          Tom

                          --
                          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                          Nur selber lernen macht schlau
                          Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                          1. Mahlzeit,

                            Gehörst Du auch zu den Leuten, die sagen "Millionen Fliegen können nicht irren"?

                            Nein. Ich frage mich nur gerade, wann Deine Nasenschleimhaut abgestorben ist. Immerhin scheinst Du - Deiner eigenen unmaßgeblichen Meinung nach - ja der einzige hier im Forum zu sein, der die Weisheit mit Löffeln zu sich genommen hat ... ;-)

                            MfG,
                            EKKi

                            --
                            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                            1. Hello,

                              Gehörst Du auch zu den Leuten, die sagen "Millionen Fliegen können nicht irren"?

                              Nein. Ich frage mich nur gerade, wann Deine Nasenschleimhaut abgestorben ist. Immerhin scheinst Du - Deiner eigenen unmaßgeblichen Meinung nach - ja der einzige hier im Forum zu sein, der die Weisheit mit Löffeln zu sich genommen hat ... ;-)

                              Schreint das jetzt nur so, oder wirst Du jetzt ausfallend?

                              Harzliche Grüße vom Berg
                              http://bergpost.annerschbarrich.de

                              Tom

                              --
                              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                              Nur selber lernen macht schlau
                              Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

                              1. Mahlzeit,

                                Schreint das jetzt nur so, oder wirst Du jetzt ausfallend?

                                Das scheint nur so ... außerdem hab ich nicht angefangen. ;-)

                                MfG,
                                EKKi

                                --
                                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                            2. Hallo Ecki,

                              Gehörst Du auch zu den Leuten, die sagen "Millionen Fliegen können nicht irren"?

                              Nein. Ich frage mich nur gerade, wann Deine Nasenschleimhaut abgestorben ist. Immerhin scheinst Du - Deiner eigenen unmaßgeblichen Meinung nach - ja der einzige hier im Forum zu sein, der die Weisheit mit Löffeln zu sich genommen hat ... ;-)

                              Da besteht wohl keine Gefahr. DEIN Löffel ist auch ganz schön groß. Nur hast Du scheinbar nicht die Weishait auf Deinem Teller, sondern Agressivität.

                              Nur weil jemand mit gut dargelegten Argumenten und guten Beispielen eine andere Meinung vertritt, als Du es tust, musst Du nicht agressiv werden. Du bist der jenige, der hier nur schwafelt: Gefahr droht, Zusammenhang geht verloren, usw.

                              Aber Du belegst an keiner einzigen Stelle, wodurch.

                              LG
                              Chris©

                    2. Hallo Ecki,

                      mit korrespondieremdem Index ist durchaus kein Kokolores.

                      IMHO doch.

                      ...

                      Die Gefahr, die Zuordnung untereinander zu verlieren, ist - wie ChrisB schrieb - viel zu groß.

                      Welche Gefahr? Woher sollte da eine Gefahr kommen?

                      LG
                      Chris©

              2. Mahlzeit,

                Leider ist die Index nicht fortlaufend da es auch sein kann, dass ein Produkt gelöscht wurde bei der Bestellung dann wäre der index nicht mehr schön der Reihe nach!

                Und da hätten wir schon das erste der Probleme, die ich hier angedeutet habe ... ich kann Dir nur nochmals raten: verlasse schleunigst den von Dir eingeschlagenen Weg und verlasse Dich nicht auf derartig kaputte Daten"strukturen" ...

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              3. Hallo Marco,

                Leider ist die Index nicht fortlaufend da es auch sein kann, dass ein Produkt gelöscht wurde bei der Bestellung dann wäre der index nicht mehr schön der Reihe nach! An die Idee habe ich auch schon
                gedacht aber geht in diesem Fall leider nicht.

                Dass der Index nicht fortlaufend ist, macht nichts. Wichtig ist nur, dass er gleich ist für produkt[$i], menge[$i] und preis[$i]

                LG
                Chris©

    2. Mahlzeit,

      wisst Ihr was ich meine?

      Verschachtelte Schleifen?

      Da muss gar nichts verschachtelt werden, sondern einfach nur eine Ausgabfunktion erstellt werden, die die Daten über den Index aus den drei Spalten zusammenstellt.

      LG
      Chris©

      1. Hallo Chris©

        Wie genau muss ich das machen?

        Danke für Dein Feedback.

        Marco

        1. Hallo Marco,

          Wie genau muss ich das machen?

          Das habe ich Dir schon irgendwo anders in diesem Thread als fertige Funktion geschrieben. Ich komm nur gerade mit der Sortierung des Threads nicht klar. Die muss ich erstmal ändern. Bin gleich weider da :-)

          LG
          Chris©

  2. Hello,

    Da zuerst alle Produkte aufgelistet werden und dann erst die Anzahl. Möchte aber, dass es so aussieht:

    wheelbag-camo 6 270
    cdx-black 1 180

    Das hängt davon ab, ob die Indices der Arrayelemente korrespondieren, oder nur die Position der Elemente in den Arrays.

    Wie sind die Arrays denn aufgebaut?

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hallo Tom

      Danke für Dein Feedback. Verstehe Deine Frage nicht ganz.

      Was genau meinst Du?

      Marco

      1. Hello Marco,

        Danke für Dein Feedback. Verstehe Deine Frage nicht ganz.

        Was genau meinst Du?

        siehe hierzu auch https://forum.selfhtml.org/?t=162809&m=1059855

        lass Dir die drei oder vier Arrays, die Du mit Musterdaten gefüllt hast, bitte mal anzeigen und poste uns das Ergebnis:

          
        echo "<pre>\n";  
          
        echo htmlspecialchars(print_r($_SESSION['produkt'],1));  
        echo htmlspecialchars(print_r($_SESSION['anzahl'],1));  
        echo htmlspecialchars(print_r($_SESSION['preis'],1));  
          
        echo "</pre>\n";  
        
        

        Dann sollte es Dir aber schon klar werden, was gemeint ist.

        Ich würde übrigens noch eine Dimension einfügen in den Aufbau des Arrays, also

        nicht      $_SESSION['produkt']

        sondern    $_SESSION['basket']['produkt']

        Dann kann bei Bedarf der komplette Wartenkorb auf einmal gelsöcht werden.

        Und nicht die Quotes vergessen für die Elementbezeichner der Arrays, es sei denn, es handelt sich bei 'produkt', 'menge' und 'preis' um Konstanten, die Du irgendwo dfiniert hast.

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)