Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2008, 10h35   #1
Invité de passage
 
Inscription : novembre 2004
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 28
Points : 4
Points : 4
Par défaut [Tableaux] déclarer un tableau : erreur "Undefined offset: 1"

Bonjour,
Je viens de passer à la version PHP4, je dois réécrire une grande partie de mes pages vu que je ne déclarais pas les variables. Mon souci vient d'un script avec des tableaux, je ne parviens pas à trouver de solution (ni sur le net, ni sur le forum). J'ai une erreur "Undefined offset: 0 et 1" pour le code fourni en dessous pour les ligne en gras et souligné.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function addtab(&$tableau,$element) {
   $temp = $element;
   if($element) {
      for($i=1;$i<=$tableau[0][1];$i++) {
      	$ident = similar_text($element, $tableau[$i][1]);
      	$longe = strlen($element);
      	$longt = strlen($tableau[$i][1]);
         if (($tableau[$i][1]==$element) || 
         (($ident > 3) && ((abs(($ident) - $longe)) == 1 || ($ident - $longe) == 0 ) && ((substr($tableau[$i][1], $longt-1) == "s") || (substr($element, $longe-1) == "s")))) 
         { 
            $tableau[$i][2]++;
            $temp = "";
            break;
         }
      }
      if($temp) {
        ==>1 $tableau[0][1]++;
         $tableau[$tableau[0][1]][1] = $element;
         $tableau[$tableau[0][1]][2] = 1;
      }
   }
   return $tableau;
 }

// Trie le tableau
function trie($tableau) {
   for($k=1;$k<=$tableau[0][1];$k++) {
      for($j=1;$j<=$k;$j++) {
        ==> 2 if($tableau[$k][2] > $tabtemp[$j][2]) {
            $put1 = $tableau[$k][1];
            $put2 = $tableau[$k][2];
            for($w=$j;$w<=$k;$w++) {
         ==> 3      $temp1 = $tabtemp[$w][1];
         ==> 4      $temp2 = $tabtemp[$w][2];             $tabtemp[$w][1] = $put1;
               $tabtemp[$w][2] = $put2;
               $put1 = $temp1; $put2 = $temp2;
            }
            break;
         }
      }
   }
   $tabtemp[0][1]=$tableau[0][1];
   return $tabtemp;
}
J'ai essayé en déclarant "$tabtemp = array();" mai cela ne fonctionne pas, j'ai toujours la même erreur.
Il y a d'abord une erreur "Undefined offset: 0 et 1" pour la ligne marquée (==>1), puis 3 erreur "Undefined offset: 1" (marquée ==> 2 et 3) dans le code.
J'ai fait une recherche sur le forum mais je n'ai pas trouvé de solution, le code fonctionnait très bien avant que je ne passe à la version PHP4.
Merci pour votre aide.
j@yce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 12h53   #2
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
d'ou tu sort $tabtemp ??? a tu essayé $tabtemp = Array(Array()); ?
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 22h19   #3
Invité de passage
 
Inscription : novembre 2004
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 28
Points : 4
Points : 4
oui j'ai essayé, cela ne change rien au message d'erreur, toujours la même chose.
J'ai aussi essayé en déclarant $tableau = array(array()); mais ça ne fait que reporter l'erreur sur une autre ligne.
Je m'en sors pas du tout ! ce n'est pas un script que j'ai écris ce qui ne fait que compliquer encore les choses...
j@yce est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h48.


 
 
 
 
Partenaires

Hébergement Web