PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 22-01-2010 13:53:54

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Remplir un tableau associatif avec une boucle

Bonjour à tous,

Juste une simple question, comment remplir un tableau à la avec une paire de valeurs récupérées en faisant
en sorte que la première valeur devienne la clé du tableau?

Avec un tableau numérique c'est simple, mais je vois pas comment faire avec de l'associatif.

Avec num :

foreach($data as $key => $value) {
  $array[] =  $value ;
}

Avec assoc, impossible de faire :

foreach($data as $key => $value) {
  $array[$key] =  $value ;
}

Merci les amis

Hors ligne

#2 22-01-2010 14:53:11

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Remplir un tableau associatif avec une boucle

salut,

c'est pas clair ta question. A tu un exemple de donnée pour $data ?

Le code semble correct  ceci dit je ne vois l'interet d'un code qui te fait une simple copie de ton tableau tu fait pareil avec un =.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 22-01-2010 15:30:05

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Remplir un tableau associatif avec une boucle

Saluton,
Peut-être faut-il déclarer $array=array() avant le parcours. Mais, comme dit Moogli, je ne vois pas bien l'intérêt.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 22-01-2010 17:16:13

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Remplir un tableau associatif avec une boucle

Alors le processus est le suivant:

1) je fais une requête sur deux tables jointes (fruits / legumes) via PDO (tu vois Maljuna, je suis tes conseils)
2) PDO me retourne un tableau de tableaux, c'est le tableau $data, avec les valeurs demandées comme ceci :

Array([0]=>array([fruits]=>pommes [legumes]=>patates)[1]=>array([fruits]=>poires [legumes]=>celeri))

3) je souhaite créer un nouveau tableau, en parcourant $data, qui ne contient que les fruits et dont la clé. Je ne voudrais que fruits devienne l'index du nouveau tableau.

Mon problème : je ne sais pas comment faire peupler un tableau à la volée (dans une boucle) avec une clé autre que numérique, comme on l'obtient dans le cas :

foreach($data as $key=>$value) {
  $array[] =  $value ;
}

J'ai vu que certains passent par :

foreach($data as $key=>$value) {
  $array[] =  $key.'='.$value ;
}

et qu'il font ensuite un explode, moi en attendant j'ai fait :


foreach($data as $key=>$value) {
  $array_key[] =  $key;
 $array_value[] = $value ;
}
 $my _new_array = array_combine($array_key,$array_value)
;

Bref...

Hors ligne

#5 23-01-2010 07:32:05

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Remplir un tableau associatif avec une boucle

Dans un tableau (numérique ou associatif) les index sont tous UNIQUEs dans une même dimension du tableau.
Comment veux-tu avoir plusieurs fois l'index 'fruits' ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 23-01-2010 09:56:12

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Remplir un tableau associatif avec une boucle

En fait je crois que je dois reformuler plus clairement :

Comment créer un tableau associatif et le remplir avec une boucle?

Hors ligne

#7 23-01-2010 12:31:16

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Remplir un tableau associatif avec une boucle

Comme ça

$array=array();
foreach($data as $key => $value) {
  $array[$key] =  $value ;
  }

mais si tu as plusieurs fois la même valeur pour $key, la dernière lue écrase l'ancienne.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#8 23-01-2010 13:39:21

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Remplir un tableau associatif avec une boucle

En fait je suis à côté de la plaque depuis le début de ce fil... On peut créer un tableau associatif comme ceci

foreach($rows as $row) {
$array[$row['alpha']] = $row['beta'];
}

Désolé pour le micmac.... Referai pu.

Hors ligne

#9 23-01-2010 13:40:47

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Remplir un tableau associatif avec une boucle

Ach j'avais pas rechargé la page! Merci Kris!

Hors ligne

Pied de page des forums