Se connecter avec
S'enregistrer | Connectez-vous
Votre question

Notice: undefined offset: 1

Tags :
  • Undefined
  • Programmation
Dernière réponse : dans Programmation
Partagez
29 Juillet 2010 09:44:10

bonjour tout le monde!
je travail sur php. j'ai crée une fonction qui remplit un tableau d'objets à deux dimensions. ces éléments sont d'index [0],[1],[2]. le tableau étant remplit je fais les deux boucles suivantes:
  1. $nbr=count($tabsheetsNodes);
  2.  
  3. for($j=0;$j<3;$j++)
  4. {
  5. for($i=0;$i<$nbr;$i++)
  6. {
  7. echo $tabsheetsNodes[$i][$j];
  8. }
  9. echo "</br>";
  10. }

ça m'affiche ce que je veux dans mon tableau mais ça m'affiche deux notices que je n'arrive pas à résoudre. les voici:
Notice: Undefined offset: 1 et Notice: Undefined offset: 2 in D:\LocalRepository\trunk\LicGen3\new_licencetest.php on line 37.
et cette line 37 correspond à la commande :echo $tabsheetsNodes[$i][$j];
avez-vous une idée?
merci d'avance.

Autres pages sur : notice undefined offset

29 Juillet 2010 11:13:19

C'est parce que certain élément de ton tableau que tu veux afficher n'existe pas.
Par exemple, tu es sur que $tabsheetsNodes[0][0] contient quelque chose ?

Si tu veux parcourir entièrement ton tableau tu peux utiliser foreach a la place.

Sinon je pense que tu peux éviter que les Notices s'affichent en faisant comme ça :
  1. echo @$tabsheetsNodes[$i][$j];

m
0
l
30 Juillet 2010 14:57:24

Seb33300 a dit :
C'est parce que certain élément de ton tableau que tu veux afficher n'existe pas.
Par exemple, tu es sur que $tabsheetsNodes[0][0] contient quelque chose ?

Si tu veux parcourir entièrement ton tableau tu peux utiliser foreach a la place.

Sinon je pense que tu peux éviter que les Notices s'affichent en faisant comme ça :
  1. echo @$tabsheetsNodes[$i][$j];






Bonjour seb33300!
merci beaucoup ton astuce a pu régler mon problème.

Merci!
m
0
l
30 Juillet 2010 15:26:37

Bonjour,

J'ajouterais qu'il y a un truc qui me gène :

  1. $nbr=count($tabsheetsNodes);


Il me semble que tu connais déjà le nombre d'index, donc inutile et tu utilises une mauvaise donnée !

Il faut mieux l'inclure dans la boucle avec l'indice de l'élément à parcourir :

  1. for($j=0;$j<3;$j++)
  2. {
  3. $nbr=count($tabsheetsNodes[$i]);
  4. for($i=0;$i<$nbr;$i++)
  5. {
  6. echo $tabsheetsNodes[$i][$j];
  7. }
  8. echo "</br>";
  9. }


C'est pour cela que tu avais des erreurs ... Tu parcours tes éléments avec une taille de mauvais tableau, ça ne m'étonne pas que tu sortes en erreur.

Sinon, pour faire encore plus simple :

  1. foreach ( $tabsheetsNodes as $array )
  2. {
  3. if ( is_array($array) )
  4. {
  5. foreach ( $array as $value )
  6. {
  7. echo $value;
  8. }
  9. }
  10. }


Et là, tu t'en fou des tailles, le foreach s'en charge tout seul.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS