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

  • Kerim
    hat ein Thema erstellt Merhdimensionales Array, $key->$value[7] dynamisch addieren.

    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!

  • Kerim
    antwortet
    Ok habe das Problem nun gelöst - nach der ersten Foreach-Schleife habe ich eine weitere Schleife eingefügt.

    Einen Kommentar schreiben:


  • Kerim
    antwortet
    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...

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    PHP-Code:
    [7] => 1,15 
    [7] => 1,26 
    Das sind keine Floatzahlen...

    Einen Kommentar schreiben:


  • jspit
    antwortet
    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.

    Einen Kommentar schreiben:


  • Kerim
    antwortet
    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.

    Einen Kommentar schreiben:


  • Suralc
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X