Se connecter avec
S'enregistrer | Connectez-vous

Notice: undefined offset: 1

Dernière réponse : dans Programmation
Partagez

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

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];

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!

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.
Posez votre question
Tom's guide dans le monde
  • Allemagne
  • France
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter