Webmaster Hub: Ajouter un ligne dans un tableau - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Ajouter un ligne dans un tableau Noter : -----

#1 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 02 mai 2011 - 21:22

Bonjour

Je veux écrire dans un tableau à deux dimensions ligne après ligne :
• le tableau est vide au début
• parfois j’écris une nouvelle ligne, parfois je complète une ligne existante
• la première colonne de chaque ligne est toujours remplie

Ma question : comment connaitre le rang de la dernière ligne existante pour écrire juste après ?

Par avance merci, je débute en tableaux.

Francois
0

#2 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 864
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 03 mai 2011 - 11:03

La solution la plus simple est probablement d'utiliser array_push:
http://uk.php.net/ma....array-push.php

Jacques.
0

#3 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 03 mai 2011 - 11:13

Merci encore une fois de ta réponse Jacques, je vais travailler avec ça.

Francois
--------------------------------------------------
Bonjour

J’ai un tableau à deux dimensions, vide :
$accesTot = array(array());


J’ai deux valeurs:
myrow[1]: esp1
myrow[2]: 1


que je voudrais placer dans une nouvelle ligne du tableau $accesTot.

Voila ce que j’ai essayé :
$nouvelleLigne = array($myrow[1], $myrow[2]);
array_push ($accesTot, $nouvelleLigne);



J'ai aussi essayé:
$nouvelleLigne = array();
array_push ($nouvelleLigne, $myrow[1], $myrow[2]);
array_push ( $accesTot, $nouvelleLigne);


sans erreur mais sans résultat dans les deux cas, les cellules $accesTot[0][0] et $accesTot[0][1] ne sont pas initialisées.

Mon dernier essai:
$nouvelleLigne = array($myrow[1], $myrow[2]);
$accesTot[] = $nouvelleLigne;


ne fonctionne que s'il y a déjà un rang existant dans $accesTot.

Par avance merci de votre aide.

Francois

Ce message a été modifié par francoisch - 03 mai 2011 - 21:10.

0

#4 L'utilisateur est hors-ligne   MarvinLeRouge 

  • Groupe : Hubmaster
  • Messages : 771
  • Inscrit(e) : 22-novembre 04
  • Genre:Homme
  • Localisation:Toulon

Posté 04 mai 2011 - 16:39

Salut,

Je ne serais pas étonné que le pb vienne de la définition de ta variable : essaie en la définissant juste par $accesTot = array();
Après tout, c'est un tableau, php n'a pas besoin de savoir par avance ce que tu compte mettre à chaque ligne : que ce soit un entier, une chaine de caractères ou un tableau importe peu.
Et à partir de là, utilise la notion $accestot[] (plus facile, je trouve).
Lorsqu'un lapin rouge naît, on le nomme Marvin, en mémoire de Marvin 1er qui détruisit la ville de Zautamauxime. Puis on le bannit car les lapins rouges, ça porte malheur.
0

#5 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 864
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 04 mai 2011 - 17:05

var_dump est ton ami pour voir ce que contient ton tableau (avant, après...).

Jacques.
0

#6 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 04 mai 2011 - 20:59

bonjour et merci de vos réponses.

J'ai progressé dans l'intervale, j'ai trouvé plus simple d'écrire la première ligne du tableau de manière particulière avant d'écrire les autres lignes avec:
$nouvelleLigne = array($myrow[1], $myrow[2]);
$accesTot[] = $nouvelleLigne;	


et ça fonctionne.

Mais j'ai maintenant un autre problème: je cherche à savoir si une valeur, contenu dans $myrow[1], existe déjà dans la première colonne de mon tableau à 2 dimensions $accesTot.

J'ai essayé avec:
$rang = array_search($myrow[1], $accesTot[0]);	


mais je comprend que je nomme plutôt la première ligne du tableau alors que je voudrais nommer la première colonne.

Est-il possible de nommer la première colonne de $accesTot, tableau à 2 dimensions?

Par avance merci de votre aide.

A coté de ça, j'ai essaye var_dump() qui est effectivement utile pour tout afficher.

Francois
0

#7 L'utilisateur est hors-ligne   MarvinLeRouge 

  • Groupe : Hubmaster
  • Messages : 771
  • Inscrit(e) : 22-novembre 04
  • Genre:Homme
  • Localisation:Toulon

Posté 04 mai 2011 - 22:54

Francoisch, sauf erreur de ma part, il n'y a pas de tableau à n dimensions en php, il y a juste des tableaux à 1 dimension, qui peuvent éventuellement contenir des tableaux à chacune de leurs lignes (et pas forcément à toutes les lignes le même type de données, d'ailleurs). C'est pour ça que je te disais que ta syntaxe ne marchait pas; la doc php confirme bien que les paramètres passés à la création d'un tableau sont les valeurs qu'on souhaite y stocker.

Il n'y a donc pas de "colonne" à accéder directement en tant que telle, il faudra donc que tu parcoures ton tableau et que tu testes à chaque ligne si la colonne X de la ligne courante est égale à la valeur recherchée.
J'ai regardé la doc, et je ne vois malheureusement pas de fonction toute faite pour extraire automatiquement une "colonne".
Lorsqu'un lapin rouge naît, on le nomme Marvin, en mémoire de Marvin 1er qui détruisit la ville de Zautamauxime. Puis on le bannit car les lapins rouges, ça porte malheur.
0

#8 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 864
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 04 mai 2011 - 23:01

Si ta "colonne" est ta clef d'accès aux différentes lignes (i.e. c'est une valeur unique), alors le plus logique est d'utiliser un tableau associatif, i.e. $tableau[$clef]=$valeur ($valeur pouvant être un tableau si tu as besoin de stocker plusieurs "colonnes" pour chaque clef).

Jacques.
0

#9 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 05 mai 2011 - 09:55

bonjour et merci de vos réponses.

Oui, j'étais en train de comprendre qu'il n'y a pas de tableaux à n dimensions mais plutôt un tableau "maître" à une seule dimension dans lequel peuvent se trouver des tableaux "secondaires", à la façon des poupées russes.

Il faut donc parcourir tout pour vérifier la présence d'une valeur; il n'y a pas de "colonne" comme ce que je chechais.

Je vais regarder en détail les tableaux associatifs, que je ne connais pas.

Merci encore.

Francois
0

#10 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 06 mai 2011 - 13:07

bonjour

Pour savoir si j'avais déjà une ligne existante, en cherchant dans la valeur de "colonne " de chaque ligne, j'ai finalement fait une boucle de recherche sur cette position.

Je me procure le nombre de ligne de mon tableau 2 dimensions avec count() pour dimensionner la boucle.

Ca fonctionne maintenant, merci encore de votre aide, j'ai appris qqechose de nouveau encore une fois.

Francois
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)