WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP foreach (http://www.wcm.at/forum/showthread.php?t=193723)

athropos 18.06.2006 12:39

PHP foreach
 
Hi!

Irgendwie steig ich nicht dahinter, wie das mit dem foreach-Befehl bei php funzt :(

Gegeben ist (in etwa, sind nur Testdaten) folgendes (2dimensionales) Array
Code:

$liste = array(
          array('NR'=>1,'Name'=>'gandalf','LeistungTyp'=>'wizard', 'Betrag' => '25')
        ,array('NR'=>2,'Name'=>'bilbo','LeistungTyp'=>'hobbit', 'Betrag' => '35')
        ,array('NR'=>3,'Name'=>'frodo','LeistungTyp'=>'hobbit','Betrag' => '46')
        ,array('NR'=>4,'Name'=>'saruman','LeistungTyp'=>'bad dude','Betrag' => '57')
        ,array('NR'=>5,'Name'=>'sauron','LeistungTyp'=>'really bad dude', 'Betrag' => '99')
  );

ich möchte nun einerseits das Array Tabellarisch ausgeben, andererseits im Zuge des Durchlaufs die Beträge summieren und am Ende die Summe bilden.

Wie genau mach ich das?

thx & lg,
Athropos

athropos 18.06.2006 12:58

oki, ich hab das Problem jetzt darauf reduziert, daß ich nicht weiß, wie ich die Beträge aufsummier..

jak 18.06.2006 12:58

2 Möglichkeiten (gibt natürlich noch viel mehr):
1.)
Code:

$summe = 0;
foreach ($liste as $ersteDimension){
  echo $ersteDimension['NR']."\t" .$ersteDimension['Name']."\t".$ersteDimension['NR'].$ersteDimension['LeistungsTyp'].$ersteDimension['Betrag']."
\n";
  $summe += $ersteDimension['Betrag']
}
echo $summe;

2.
Code:

$summe = 0;
foreach ($liste as $ersteDimension){
  foreach($ersteDimension as $key => $eintrag){
    echo "$eintrag \t";
    if($key == 'Betrag') $summe += $eintrag;
  }
  echo "
\n";
  echo $ersteDimension['NR']."\t"
}
echo $summe;

jak

James 18.06.2006 13:47

kopier ich einfach mal frech als zitat von http://www.php-resource.de/manual.ph...tion.array-sum

Zitat:

array_sum

(PHP 4 >= 4.0.4, PHP 5)
array_sum -- Liefert die Summe der Werte in einem Array
Beschreibung
number array_sum ( array array )

array_sum() liefert die Summe der Werte eines Arrays als Integer oder Float.

Beispiel 1. array_sum()
<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a"=>1.2, "b"=>2.3, "c"=>3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
sum(a) = 20
sum(b) = 6.9

Anmerkung: PHP Versionen vor 4.2.1 haben das übergebene Array selbst modifiziert, und Strings in Zahlen konvertiert (welche abhängig von deren Wert meist zu null konvertiert wurden).

athropos 18.06.2006 13:47

Hurra!

DANKE @jak :bier:


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag