[Symfony2] Problème tableau 2 dimensions

hjoumane-p
Invité n'ayant pas de compte PHPfrance

22 avr. 2014, 17:58

Bonjour à toutes et à tous.

J'espère que vous allez très bien les amis :)

Mon problème que je ne sais pas d’où il vient, est que j'ai une fonction qui doit me faire des calculs sur un tableau de 2 dimensions mais ça ne marche pas :/
public function calculer($nbrPrestations,$tab,$request)
    {
 
        for($i=0; $i<$nbrPrestations; $i++)
        {
            $tab[0][$i] = $request->get('petitDej'.$i);
            $tab[1][$i] = $request->get('nuite'.$i);
            $tab[2][$i] = $request->get('petitDej'.$i);
            $tab[3][$i] = $request->get('dej'.$i);
            $tab[4][$i] = $request->get('diner'.$i);
            $tab[$i][5] = 0;
 
            $tab[$i][5] = $tab[$i][0] + $tab[$i][1] + $tab[$i][2] + $tab[$i][3] + $tab[$i][4] ; /* Total de chaque prestation */
 
            $tab[$nbrPrestations][0] += $tab[$i][0]; /* Total des petit déj */
            $tab[$nbrPrestations][1] += $tab[$i][1]; /* Total des nuité */
            $tab[$nbrPrestations][2] += $tab[$i][2]; /* Total des déj */
            $tab[$nbrPrestations][3] += $tab[$i][3]; /* Total des diner */
            $tab[$nbrPrestations][4] += $tab[$i][4]; /* Total des autres */
 
        }
 
        /* Total Global */
        $tab[$nbrPrestation][5] = $tab[$nbrPrestation][0] + $tab[$nbrPrestation][1] + $tab[$nbrPrestation][2]
                                    + $tab[$nbrPrestation][3] + $tab[$nbrPrestation][4];
 
        return $tab;
    }
Et dans une autre fonction où je fais l'appel, j'ai cela :
  $tab = array(); // déclaration du tableau 
  $tab = $this->calculer($nbrPrestations,$tab,$request);  // affectation du résultat de la fonction calculer
voila l'erreur que je reçois :

Code : Tout sélectionner

ContextErrorException: Notice: Undefined offset: 1

Je vous remercie d'avance pour votre aide ;)

nitrix
Invité n'ayant pas de compte PHPfrance

25 avr. 2014, 16:10

Bonjour,

je pense qu'il y a plusieurs problèmes dans ton code car tu commences comme ça
$tab[0][$i] = $request->get('petitDej'.$i);
et tu finis comme ça :
$tab[$i][5] = 0;
Après je ne sais pas ce que tu veux faire mais ça me semble louche...

Et ton message d'erreur vient certainement de ces lignes :
 $tab[$nbrPrestations][0] += $tab[$i][0]; /* Total des petit déj */
            $tab[$nbrPrestations][1] += $tab[$i][1]; /* Total des nuité */
            $tab[$nbrPrestations][2] += $tab[$i][2]; /* Total des déj */
            $tab[$nbrPrestations][3] += $tab[$i][3]; /* Total des diner */
            $tab[$nbrPrestations][4] += $tab[$i][4]; /* Total des autres */
 
        }
 
        /* Total Global */
        $tab[$nbrPrestation][5] = $tab[$nbrPrestation][0] + $tab[$nbrPrestation][1] + $tab[$nbrPrestation][2]
                                    + $tab[$nbrPrestation][3] + $tab[$nbrPrestation][4];
Car dans ta boucle for, tu pars de i=0 jusqu'à i < $nbrPrestation, donc les index de ton tableau vont de 0 à $nbrPrestation - 1 et non pas $nbrPrestation