Somme des valeurs d'un tableau

Toony
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 11:07

Encore moi!

J'ai récupéré le code suivant:

Code : Tout sélectionner

function add($ref,$qte) { $_SESSION['achats'][] = array ("ref" => $ref,"qte" => $qte); }
Ce tableau se remplit petit a petit et j'essaye de récupérer la somme de toutes les valeurs du champ quantité..
Je suis parti sur un
$count2 = count($_SESSION['qte']);
mais ca m'a pas l'air tres juste...

une idée?

Mammouth du PHP | 19672 Messages

22 avr. 2005, 12:45

Hello
$count2 = count($_SESSION['qte']);
Cette ligne ne va pas faire un total des valeurs enregistrées mais le compte du nombre d'occurences, de lignes si tu préfères.
Pour avoir un total additionnant les valeurs qui vont être enregistrées dans $_SESSION['qte'], il faudrait faire :
<?php
$_SESSION['total'] = 0;
function add($ref, $qte)
{
    $_SESSION['total'] += $_SESSION['qte'];
}
?>
Il faudrait cependant traiter à part les références. Le code que tu as montré va ré-initialiser la variable de session $_SESSION['achat'] à chaque appel.

Donc on reprend du début .
-1- On initialise les variables de session :
$_SESSION['total'] = 0;
$_SESSION['achat'] = array("ref" = array(), "qte" = array());

-2- On ajoute les valeurs par la fonction :
function add($ref, $qte)
{
    array_push($_SESSION['achat']['ref'], $ref);
    array_push($_SESSION['achat']['qte'], $qte);
    /* On ajoute la quantité à la valeur déjà contenue dans la variable de session total */
    $_SESSION['total'] += $qte;
}
-3- On récupère le total obtenu :
echo($_SESSION['total']);
Voilà, comme ça, tu auras la quantité totale. Pour le nombre de références enregistrées, ce sera
count($_SESSION['achat']['ref']);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 13:55

Merci pour tout ça!

C'est très clair et ça marche! :D

Mammouth du PHP | 19672 Messages

22 avr. 2005, 13:57

Tu m'en vois ravi :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: