$f_1 + $f_2 + ... + jusqu'à $f_n. [Résolu]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : $f_1 + $f_2 + ... + jusqu'à $f_n. [Résolu]

Re: $f_1 + $f_2 + ... + jusqu'à $f_n.

par Staedtler » 13 oct. 2009, 18:35

Encore un grand merci à vous trois ! :pouce:

J'ai utilisé la solution de Fab qui fonctionne parfaitement :

Code : Tout sélectionner

$maximum_2 = $maximum + 1; $somme = 0; for($i = 1; $i < $maximum_2; $i++) { $total = $somme += $fonction[$i]; };
C'était la plus simple à utiliser dans mon cas...

Re: $f_1 + $f_2 + ... + jusqu'à $f_n.

par Staedtler » 13 oct. 2009, 17:59

Merci beaucoup Cobaye, naholyr et Fab,

J'oubliai de préciser que je préférai éviter d'utiliser un tableau, dans le cas présent, et c'est justement là que je sèche... additionner des fonctions $f[1] + $f[2] + ... , jusqu'à $f[$maximum], sans utiliser un tableau.

Depuis deux jours j'ai essayé pas mal de choses avec les tableaux et fonctions array_sum, etc., mais ça engendre de nombreux bugs, qui nécessitent autant de vérifications (lourdeur du script), pour incrémenter le tableau de chaque nouvelle valeur. Ou alors il faudrait que je sache comment entrer toutes les fonctions/valeurs dans ce tableau :

Code : Tout sélectionner

array(1=>$fonction[1], $fonction[2], $fonction[3]
jusqu'à $fonction[$maximum], dont la valeur est variable (nombre de "$fonction["n"]" variable).

Je lis en détail vos réponses, qui sont arrivées pendant que j'écris ces quelques lignes...

Encore merci pour vos pistes éclairés. :-)

Edit :

Code : Tout sélectionner

$somme = 0; for($i=0;$i<$maximum) $somme += $fonctions[$i];
Je teste ça !

Re: $f_1 + $f_2 + ... + jusqu'à $f_n.

par fab » 13 oct. 2009, 17:30

Si tu veux faire une simple addiction de tous les éléments de ton tableau tu peux utiliser la fonction array_sum()

Donc dans ton cas ça va donner
$somme = array_sum($fonctions);
Pour les autres cas que l'addition, je te conseille de faire une boucle for, c'est simple est efficace :) Mais attention il faut être certains que l'incrémentation dans ton tableau est sans "trou" ce qui signifie que tu dois obligatoire voir un élément n-1 pour chaque élément n de ton tableau. Sinon faudra pencher du côté de foreach qui fait ça tout seul mais qui est moins performant...

Exemple avec for :
$somme = 0;
for($i=0;$i<$maximum) $somme += $fonctions[$i]; 
+= est un syntaxe courte de $somme = $somme + $fonction[$i]

Re: $f_1 + $f_2 + ... + jusqu'à $f_n.

par Cobaye » 13 oct. 2009, 17:26

ah oui j'y pensais plus au array_sum() !

Re: $f_1 + $f_2 + ... + jusqu'à $f_n.

par naholyr » 13 oct. 2009, 17:25

« Somme des éléments d'un tableau » :arrow: « Sum of array elements » :arrow: « Sum array » :arrow: array_sum()

Re: $f_1 + $f_2 + ... + jusqu'à $f_n.

par Cobaye » 13 oct. 2009, 17:20

regarde la fonction foreach ca te permettra de boucler sur ton tableau sans te préoccuper de sa taille.

$f_1 + $f_2 + ... + jusqu'à $f_n. [Résolu]

par Staedtler » 13 oct. 2009, 17:16

Bonjour,

Mon problème est certainement très simples, mais franchement, je bloque :

Dans une page, j'ai une fonction "$maximum", qui donne le nombre de fonctions "$fonction["n"]",
et plusieurs fonctions, chacune nommée par incrémentation : $fonction[1], $fonction[2], $fonction[3], etc., jusqu'à la valeur de "$maximum".

Chaque fonction "$fonction["n"]" = une valeur quelconque.

Exemple :
$maximum = 5;

$fonction[1] = 1.20;
$fonction[2] = 9.00;
$fonction[3] = 3.20;
$fonction[4] = 2.40;
$fonction[5] = 2.00;
Je cherche à additionner toutes les "$fonction["n"]" :

Code : Tout sélectionner

$total = $fonction[1] + $fonction[2] + $fonction[3] + $fonction[4] + $fonction[5]
par une solution qui me permettrait de le faire même s'il y avait des "$fonction["n"]" jusqu'à $fonction[5000] (cas où $maximum = 5000).

En somme, une sorte de $total = $fonction[1] + $fonction[2] + ... + $fonction[$maximum];
Ou en utilisant une solution du type : for ($i = 1; $i <= $maximum; $i++)

En espérant avoir été clair...
Merci d'avance !

( PS : Toutes mes excuses si cette question très basique a déjà été posée, j'ai peut-être effectuer des recherches (ne fais que ça depuis ce matin) avec de mauvais mots clés... )