Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2145 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comment ajouter des infos à un index qui n'existe pas forcément ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment ajouter des infos à un index qui n'existe pas forcément ?

n°1990294
GPT2
Posté le 04-05-2010 à 22:11:31  profilanswer
 

Bonjour,

 

Lorsque je fais:

 
Code :
  1. $montableau['nouvel_index'].= 'blablabla';


(remarquez le point avant le signe égal)

 

J'obtiens l'erreur suivante:

Citation :

Notice: Undefined index: nouvel_index

 

Or si je fais:

Code :
  1. $montableau['nouvel_index'] = '';
  2. $montableau['nouvel_index'].= 'blablabla';
 

Y'a plus d'erreur.

 

Donc à part vérifier que l'index existe déjà ou pas, y'a-t-il une solution simple ?

 

Merci par avance  :jap:

 


PS: Notez que je travaille volontairement avec error_reporting(-1);


Message édité par GPT2 le 05-05-2010 à 18:45:10
mood
Publicité
Posté le 04-05-2010 à 22:11:31  profilanswer
 

n°1990389
Pascal le ​nain
Posté le 05-05-2010 à 11:04:47  profilanswer
 

Il n'y a pas d'autre solution à ma connaissance...
 
As-tu initialisé $montableau = array(); ?

n°1990398
skeye
Posté le 05-05-2010 à 11:49:18  profilanswer
 

Pas de miracle, php ne va pas deviner qui tu comptais mettre un entier à cet indice et initialiser à 0 s'il n'y a rien...


---------------
Can't buy what I want because it's free -
n°1990437
Pascal le ​nain
Posté le 05-05-2010 à 13:30:08  profilanswer
 

Oups, effectivement, j'avais pas vu le point.
 
Le .= est une concaténation avec 2 chaines.
La 2ème chaine est définie, mais pas la 1ère, qui n'est pas définie.
D'où l'erreur...
 

Code :
  1. $montableau['nouvel_index'] = 'blablabla';


 
Pourquoi veux-tu absolument concaténer ?

Message cité 1 fois
Message édité par Pascal le nain le 05-05-2010 à 13:31:06
n°1990521
GPT2
Posté le 05-05-2010 à 17:08:58  profilanswer
 

merci pour les réponses
 

Pascal le nain a écrit :

Pourquoi veux-tu absolument concaténer ?


 
parce que j'ai une boucle qui, à chaque itération, ajoute des données à mon tableau:
 

Code :
  1. $produits = array();
  2.         foreach ($produits_en_desordre as $key => $value)
  3.         {
  4.             $produits[$value['type_de_produit']].= $value['nom_du_produit'] . ' : ' . $value['prix_du_produit'] . '<br />';
  5.         }


 
le but étant de créer un index par type de produit, de sorte que $produits['fruit'] me donne la liste de tous les produits correspondant à ce "type_de_produit". capito?
 
voici une solution pour enlever l'erreur :
 

Code :
  1. $produits = array();
  2.         foreach ($produits_en_desordre as $key => $value)
  3.         {
  4.             if (!isset($produits[$value['type_de_produit']])) {
  5.                 $produits[$value['type_de_produit']] = '';
  6.             }
  7.             $produits[$value['type_de_produit']].= $value['nom_du_produit'] . ' : ' . $value['prix_du_produit'] . '<br />';
  8.         }


 
mais bon le problème de performance de cette méthode m'inquiète sévèrement  [:tibo2002] , que faire ?


Message édité par GPT2 le 05-05-2010 à 18:44:37
n°1990550
skeye
Posté le 05-05-2010 à 17:42:27  profilanswer
 

Faire des tableaux de tableaux?:D
 

Code :
  1. $produits = array();
  2. foreach ($produits_en_desordre as $key => $value)
  3. {
  4.     $produits[$value['type_de_produit']][] = $value['nom_du_produit'] . ' : ' . $value['prix_du_produit'] . '<br />';
  5. }


 
...après ça dépend comment tu t'en sers derrière...mais en tout cas t'inquiètes surtout pas des performances pour l'instant...


---------------
Can't buy what I want because it's free -
n°1990561
Pascal le ​nain
Posté le 05-05-2010 à 17:58:00  profilanswer
 

skeye a écrit :

Faire des tableaux de tableaux?:D


 
Pas con. Après tu fais un implode pour tout rassembler dans une variable.
En plus ca t'évite d'ajouter <br/> à chaque fois.
 

Code :
  1. $produits = array();
  2. foreach ($produits_en_desordre as $key => $value)
  3. {
  4.      $produits[$value['type_de_produit']][] = $value['nom_du_produit'] . ' : ' . $value['prix_du_produit'];
  5. }
  6. $produits[$value['type_de_produit']] = implode('<br/>', $produits[$value['type_de_produit']]);


 
:p


Message édité par Pascal le nain le 05-05-2010 à 18:00:42
n°1990578
GPT2
Posté le 05-05-2010 à 18:58:19  profilanswer
 

merci pour les réponses
 
je vais réfléchir...  
 

skeye a écrit :

mais en tout cas t'inquiètes surtout pas des performances pour l'instant...


 [:nicarao]  
 
mauvaise approche [:o_non]
 
 
 
 
en fait je travaille avec ApacheBench qui tourne en parallèle  :D  et je deviens un peu trop parano car à chaque ligne modifiée: je refais un bench complet  :whistle:

n°1990591
skeye
Posté le 05-05-2010 à 19:57:15  profilanswer
 

GPT2 a écrit :


 [:nicarao]  
 
mauvaise approche [:o_non]
 
 
en fait je travaille avec ApacheBench qui tourne en parallèle  :D  et je deviens un peu trop parano car à chaque ligne modifiée: je refais un bench complet  :whistle:


complète perte de temps. :/


---------------
Can't buy what I want because it's free -
n°1990990
GPT2
Posté le 06-05-2010 à 17:14:20  profilanswer
 

:kaola:

mood
Publicité
Posté le 06-05-2010 à 17:14:20  profilanswer
 

n°1991002
Fred999
Rabat-joie
Posté le 06-05-2010 à 17:33:40  profilanswer
 

Ton test là il coûte vraiment pas cher... sinon tu fais une première étape où tu n'extrais que les types de produits, ce qui te permettra d'initialiser les indices de ton tableau.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comment ajouter des infos à un index qui n'existe pas forcément ?

 

Sujets relatifs
Ajouter une liste a une autre[résolu] Undefined index
Décrypter une archive .rar (avec infos)Ajouter des applets sur eclipse en Java
Recuperer les infos d'un UserControl au changement de pageAjouter les classes Qt de Network dans Visual Studio
Idée Web saugrenue (ca existe peut être)Afficher ce qui n'existe pas dans la BDD
Existe-t-il un script JS pour modifier le code source d'une page html?Mysql : copier un champ vers un autre sauf s'il existe déjà
Plus de sujets relatifs à : Comment ajouter des infos à un index qui n'existe pas forcément ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR