Recupérer variable dans array [Résolu/Fermé]

Signaler
-
Messages postés
32958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 juin 2021
-
Bonjour cher programmeur !

Je suis rouiller un peu j'aurais besoin de votre aide si vous avez quelque minute

J'ai un array comme ceci :

$result = print_r($ret, true);



echo $result;

le output ressemble a ca :

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )

J'aimerais récupérer les donner des item en variable pour les stockers dans MYSQL exemple :

echo $variable[vues]; // (323)

echo $variable[vente]; // (3)

echo $variable[achat]; // (43)


Ca fait 4 heure j'essais plein d'affaire j'y arrive pas :(

Merci infiniment j'apprécie !!!




12 réponses


Bonjour

Comme le montre ton $result, ta variable $ret est un tableau à un seul élément, d'index 333212. On accède à cet élément en écrivant
$ret[333212]
.

Cet élément est lui-même un tableau, dont les éléments ont pour index vues, vente, achat et numero.
On y accède donc en écrivant
$ret[333212]["vues"], $ret[333212]["ventes"]
...

C'est peut-être plus clair pour toi en te servant d'une variable intermédiaire :
$interm=$ret[333212];
ensuite : $interm["vues"],$interm["ventes"]...
Merci beaucoup! le probleme c'est que ca me renvoie rien a cause je crois que j'ai des parenthese [] au lieu de "" j'ai utiliser st_replace ca bien été mais j'arrive pas a ajouter les virgule apres les valeurs pour pouvoir récuperer les donner de cette facon.
exemple :

Array ( "333212" => Array ( "vues" => 323, "vente" => 3, "achat" => 43, "numero" => 333212 ) )

Mais si, ce que je t'avais dit marchait. Essaye le programme :
<?php
$ret= [333212=>["vues"=>323,
                "vente"=>3,
                "achat"=>43,
                "numero"=>333212]];
$result = print_r($ret, true);
echo $result;
echo '<br />';
echo $ret[333212]["vues"];


Il affiche bien la même chose que dans ton premier message et $ret[333212]["vues"] affiche bien la valeur demandée.

Mais je vois que tu as changé de tableau depuis : ton dernier exemple a des " en plus qu'il n'y avait pas dans ton message initial. Je ne sais pas ce que tu as fait pour en arriver là, tu parles de parenthèses, de [], de "" et de st_replace mais on n'a aucune idée de ce que tu en fais. On devine d'après ton dernier exemple que tu as rajouté des " là où il n'en fallait pas.
C'est que mon array contient des pârenthese et na pas les virgules comme toi

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )

Je sais vraiment pu quoi faire je me sens stupide je dois peut-etre utiliser parse_str(); ?
Utilisateur anonyme
"Ton array contient des parenthèses et pas de virgules comme moi" Qu'est ce que ça veut dire ? Ni ton array, ni le mien ne contiennent de parenthèses, ni de virgules.
As-tu essayé mon programme ? Il affiche très exactement Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) ) , comme toi. Il s'agit bien du même array.
Il ne faut pas confondre l'array et ses diverses représentations :
Le code qu'il faut écrire pour l'initialiser contient des virgules :
$ret= [333212=>["vues"=>323,
                "vente"=>3,
                "achat"=>43,
                "numero"=>333212]];

Mais ceci n'est pas l'array, c'est le programme php qui sert à initialiser l'array.
Quand tu affiches le contenu de cet array avec print_r, tu obtiens
Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) ) 
. Il y a bien des parenthèses là-dedans, mais là encore, ceci n'est pas l'array : c'est juste la représentation donnée par print_r.

Peux-tu donner le code que tu as essayé pour dire qu'avec ma réponse "ca me renvoie rien " ?
Merci infiniment pour tes réponses pardonne moi j'ai tellement rusher ladessus c'est horrible. c'est que moi j'ai une ligne comme celle ci :

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )

Je dois récuperer les valeur avec des variables sans toucher rien a mon array.

Je m'excuse si mal compris je vais tout vous relire et recommencer.
cette ligne ici :

$ret= [333212=>["vues"=>323,
"vente"=>3,
"achat"=>43,
"numero"=>333212]];

je ne peux pas changer le $ret il est déja comme ca

je dois garder cette ligne absolument

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )


souvent les valeurs vont changer exemple :

Array ( [333DKSJ212] => Array ( [vues] => 33 [vente] => 73 [achat] => 437 [numero] => 333DKSJ212 ) )
J'ai esseyer de copier coller tes code et ca me renvoi un erreur de syntaxe a la premiere ligne
Utilisateur anonyme
C'est que tu recopies mal. Je viens de faire l'essai, ça marche.
Ne dis jamais "il y a une erreur de syntaxe", ça ne sert à rien si tu ne recopies pas le massage d'erreur.

Je suis absent cet après-midi, la suite ce soir si personne d'autre n'intervient d'ici là.
> Utilisateur anonyme
D'accord merci beaucoup je vais moi aussi prendre une pause car rien fonctionne et c'est humiliant :)
Messages postés
32958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 juin 2021
3 558
Bonjour,


Je pense que ce que essaies de nous dire .. c'est que la première clé peut changer ...
Dans ce cas.. il suffit d'utiliser une foreach.
Un truc du genre
foreach($ret as $variable){
  echo $variable["vues"]; // (323)
  echo $variable["vente"]; // (3)
  echo $variable["achat"]; // (43)
}


Cordialement, 
Jordane                                                                 
lol Merci infiniment monsieur ! je suis trop stupide je devais pas utiliser toute cette cochonnerie j'avais juste a faire directement ceci sans la mettre dans une variable avec print_r :)

echo $ret[333212]["vues"];

merci mille foix !
Merci mille fois Johanne vous êtes super !
Messages postés
32958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 juin 2021
3 558
Johanne ?
Pardon jordane45 j'étais super content j'ai été trop vite
Messages postés
32958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 juin 2021
3 558
:-)