Den vil give problemer hvis arrayet er associativt eller der mangler nogle pladser. Brug hellere en while eller foreach:
$a=array(10,2,34,5);
$resultat=0;
while(list(,$val)=each($a))
{
$resultat+=$val;
}
// Eller..
$resultat=0;
foreach($a as $val)
{
$resultat+=$val;
}
Hmm.. jeg kan ikke rigtig få det til at virke. Men så må jeg vist hellere være lidt mere præcis. Det array jeg skal have lagt nogle tal sammen fra, er nogle priser på nogle varer i en webshop. Jeg bruger session til at lave dette array. Og tallet jeg vil have regnet ud, er totalprisen (gerne gemt i en variabel.)
Som det er nu henter min varekurv også sine varer fra en session, og her udfra beregnes en delsum for hver vare. Alle disse delsummer skal så lægges sammen, men jeg kan ikke rigtig få det til at virke. Nogen der kan hitte ud af det?:
<?php
if (!empty($_SESSION["varer"])) {
echo "Indholdet af kurven: <br/><br/>";
foreach ($_SESSION["varer"] as $vareId => $vareAntal) {
$fore = mysql_query("SELECT * FROM tabel WHERE id=$vareId");
while($rows = mysql_fetch_array($fore)){
$delsum = $vareAntal*$rows['pris'];
$_SESSION["total"][$rows['id']] = $delsum; // Saetter en session med delsummen som bruges til at udregne totalbeløbet senere
echo $vareAntal . " stk " . $rows['navn'] . " á " . $rows['pris'] . " I alt: " . $delsum . "<br><br>";
}
}
} else {
echo "<br><br>Kurven er tom";
}
if (!empty($_SESSION["total"])) {
// Udregning af totalbeløbet her
}
?>