Array d'objets d'array d'array d'objet ?!
Résolu
Lya
-
Mihawk Messages postés 4753 Statut Contributeur -
Mihawk Messages postés 4753 Statut Contributeur -
Bonjour,
Je me mélange les pinceaux entre les array et les objets...
Comment extraire de ce tableau la donnée "destinataire" ?
Merci,
Lya
Je me mélange les pinceaux entre les array et les objets...
Comment extraire de ce tableau la donnée "destinataire" ?
Array
(
[signature] =>M2Mjc0NjgsXCJhcHBc
[commande_details] => {"commande_id":112248545542195,"acheteur":14151819,"destinataire":1415181968,"montant":12,"objet":[{"item_id":"4","titre":"Parapluie","description":"Parapluie pour la pluie","prix":12,"data":"1350"}],"status":"ok"}
[status] => ok
[commande_id] => 789gft6541
[methode] => paiement_update
)
Merci,
Lya
A voir également:
- Array d'objets d'array d'array d'objet ?!
- Site pour vendre des objets d'occasion - Guide
- Ryanair objets interdits - Guide
- Trouver objet avec photo - Guide
- Mesurer un objet - Guide
- Ce document fait l'objet d'un trop grand nombre de modifications ✓ - Forum Word
6 réponses
Bonjour,
L'item [commande_details] correspond à la sérialisation d'un tableau d'objets.
Pour désérialiser, il faut utiliser unserialze:
https://www.php.net/manual/fr/function.unserialize.php
sauf que pour désérialser un objet, c'est compliqué.
Voici une solution:
et qui affiche ceci:
A partir de là on fait simplement ceci:
à l'exécution on retrouve ceci pour $destinataire: 1415181968
A+
L'item [commande_details] correspond à la sérialisation d'un tableau d'objets.
Pour désérialiser, il faut utiliser unserialze:
https://www.php.net/manual/fr/function.unserialize.php
sauf que pour désérialser un objet, c'est compliqué.
Voici une solution:
$commandeDetail = '{"commande_id":112248545542195,"acheteur":14151819,"destinataire":1415181968,"montant":12,"objet":[{"item_id":"4","titre":"Parapluie","description":"Parapluie pour la pluie","prix":12,"data":"1350"}],"status":"ok"}';
$search=array('{','"');
$replace=array('','', );
$xx = str_replace($search, $replace, $commandeDetail);
$yy = explode(',', $xx);
print_r($yy);
et qui affiche ceci:
Array
(
[0] => commande_id:112248545542195
[1] => acheteur:14151819
[2] => destinataire:1415181968
[3] => montant:12
[4] => objet:[item_id:4
[5] => titre:Parapluie
[6] => description:Parapluie pour la pluie
[7] => prix:12
[8] => data:1350}]
[9] => status:ok}
)
A partir de là on fait simplement ceci:
$destinataire = null;
foreach($yy AS $key => $val) {
$zz = explode(':', $val);
if($zz[0]=='destinataire') {
$destinataire = $zz[1];
}
}
echo "<b>".$destinataire."</b><br>";
à l'exécution on retrouve ceci pour $destinataire: 1415181968
A+
Ahh une réponse!
J'ai tenté ceci mais cela ne marche pas. Merci quand même :)
J'ai également tenté de convertir le tout en tableau, ce qui fonctionne. Le gros problème est que cela me transforme mes données en exposant...
ex "destinataire":1415181968
me renvoie 1415181E14
Mal barrée...
J'ai tenté ceci mais cela ne marche pas. Merci quand même :)
J'ai également tenté de convertir le tout en tableau, ce qui fonctionne. Le gros problème est que cela me transforme mes données en exposant...
ex "destinataire":1415181968
me renvoie 1415181E14
Mal barrée...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question