Ankündigung

Einklappen
Keine Ankündigung bisher.

Merhdimensionales Array, $key->$value[7] dynamisch addieren

Einklappen

Neue Werbung 2019

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

  • Merhdimensionales Array, $key->$value[7] dynamisch addieren

    Moin Moin!

    Ich habe ein mehrdimensionales Array, was wie folgt aufgebaut ist:

    Code:
    Array ( 
    	[0] => Array ( 
    		[0] => 80 
    		[1] => 123 
    		[2] => Croque Pute 
    		[3] => 2 
    		[4] => 7,20 
    		[5] => 14,40 
    		[6] => 12,10 
    		[7] => 1,15 
    	) 
    	[1] => Array (
    		[0] => 16 
    		[1] => 45 
    		[2] => Maccaroni mit Schinken u.Sahnesauce 
    		[3] => 1 
    		[4] => 7,90 
    		[5] => 7,90 
    		[6] => 6,64 
    		[7] => 1,26 
    	) 
    )
    Ich möchte nun aus jedem unterdimensioniertem Array die Mehrwertsteuer zusammenrechnen ($v[7]), habe bisher auch folgendes versucht:

    Code:
    foreach($posten AS $k => $v){
    			## Tabellenzeile ausgeben
    			echo '<tr>';
    			echo 	'<td>' . $k . '</td>';//Postition
    			echo 	'<td>' . $v[0] . '</td>';//ArtikelID
    			echo 	'<td>' . $v[1] . '</td>';//Artikelnummer
    			echo 	'<td>' . $v[2] . '</td>';//Bezeichnung
    			echo 	'<td>' . $v[3] . '</td>';//Anzahl
    			echo 	'<td>' . $v[4] . '</td>';//Einzelpreis
    			echo 	'<td>' . $v[5] . '</td>';//Bruttopreis
    			echo 	'<td>' . $v[6] . '</td>';//Nettopreis
    			echo 	'<td>' . $v[7] . '</td>';//MwSt
    			echo '</tr>';
    			## addieren der Spalten
    				$mwst_summe = 0;
    				$mwst_summe += $v[7];
    			        echo $mwst_summe;
    		}
    Leider war das ein Griff ins Klo...

    Ich bin für jeden Hinweis sehr dankbar!
    Brontalos Multigaming

  • #2
    Was erhälst du denn als aktuelles Ergeniss und was ist das gewünschte?

    So wie die Schleife derzeit ist, setzt du den Wert bei jedem Schleifendurchlauf wieder auf 0.
    Zitat von nikosch
    Naja, anscheinend spricht die Steckdose kein HTTP. LOL

    Kommentar


    • #3
      Zitat von Suralc Beitrag anzeigen
      Was erhälst du denn als aktuelles Ergeniss und was ist das gewünschte?

      So wie die Schleife derzeit ist, setzt du den Wert bei jedem Schleifendurchlauf wieder auf 0.
      Mein Array wird jedes mal, wenn ich einen Artikel hinzufüge, mit einem weiteren index gefüttert. Ich möchte am Ende die Summe der Mehrwertsteuer am Ende der Tabelle ausgeben können.
      Brontalos Multigaming

      Kommentar


      • #4
        Zitat von Kerim Beitrag anzeigen
        Mein Array wird jedes mal, wenn ich einen Artikel hinzufüge, mit einem weiteren index gefüttert.
        Was hat dies mit dem Hinweis von Suralc zu tun? Hast du seinen Hinweis verstanden?
        Alle Werte in einem Array addieren

        Zitat von Kerim Beitrag anzeigen
        Ich möchte am Ende die Summe der Mehrwertsteuer am Ende der Tabelle ausgeben können.
        Dann gib sie auch nach der Ausgabe deiner Tabelle aus und nicht in deiner Schleife.

        Kommentar


        • #5
          PHP-Code:
          [7] => 1,15 
          [7] => 1,26 
          Das sind keine Floatzahlen...
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Zitat von lstegelitz Beitrag anzeigen
            PHP-Code:
            [7] => 1,15 
            [7] => 1,26 
            Das sind keine Floatzahlen...
            Danke für den Hinweis, die Zahlen wandle ich jetzt per Funktion in eine Floatzahl um.

            Momentan bin ich dank eurer Tips bis hierher gekommen:

            Code:
            ## Dynamischer Array mit Artikeln
            		$mwst_summe = 0;
            		foreach($posten AS $k => $v){
            			## Tabellenzeile ausgeben
            			echo '<tr>';
            			echo 	'<td>' . $k . '</td>';//Postition
            			echo 	'<td>' . $v[0] . '</td>';//ArtikelID
            			echo 	'<td>' . $v[1] . '</td>';//Artikelnummer
            			echo 	'<td>' . $v[2] . '</td>';//Bezeichnung
            			echo 	'<td>' . $v[3] . '</td>';//Anzahl
            			echo 	'<td>' . tofloat($v[4]) . '</td>';//Einzelpreis
            			echo 	'<td>' . tofloat($v[5]) . '</td>';//Bruttopreis
            			echo 	'<td>' . tofloat($v[6]) . '</td>';//Nettopreis
            			echo 	'<td>' . tofloat($v[7]) . '</td>';//MwSt
            			echo 	'<td>
            						<form role="form" action="index.php?auftrag-3" method="post">
            							<input type="hidden" name="unset" value="' . $k . '">
            							<input type="hidden" name="kundenid_aus_entfernen" value="' . $kundenid . '">
            							<button class="btn btn-danger" type="submit" name="posten_entfernen"><i class="fa fa-minus"></i></button>
            						</form>
            					</td>';
            			echo '</tr>';
            			array_walk_recursive($posten, function($val, $key) use (&$mwst_summe) {
            				$mwst_summe += $key;
            			});
            		}
            		echo '<h1>MWST: ' . tofloat($mwst_summe) . '</h1>';
            Meine HTML-Ausgabe bei einem Artikel mit 0.16 € MwSt. ist 28.

            $mwst_summe +=$key zählt ALLE Elemente meines Arrays, soweit habe ich mich eingelesen.

            Mein nächster Versuch war dann Folgender:

            Code:
            array_walk_recursive($posten, function($val, $key) use (&$mwst_summe) {
            				$mwst_summe += $val[$key[7]];
            			});
            Wieder getestet mit 1 Artikel, diesmal betrug die MwSt 1.15 €, $mwst_summe war dann 29.

            Ich hoffe, nicht ganz auf dem falschen Weg zu sein...
            Brontalos Multigaming

            Kommentar


            • #7
              Ok habe das Problem nun gelöst - nach der ersten Foreach-Schleife habe ich eine weitere Schleife eingefügt.
              Brontalos Multigaming

              Kommentar

              Lädt...
              X