Array d'objets d'array d'array d'objet ?!
Résolu/Fermé
Lya
-
18 août 2011 à 16:28
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 24 août 2011 à 16:31
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 24 août 2011 à 16:31
A voir également:
- Array d'objets d'array d'array d'objet ?!
- Site pour vendre des objets d'occasion - Guide
- Identifier un objet à partir d'une photo - Guide
- Objet interdit en cabine ryanair - Guide
- Les objets du net - Forum Consommation & Internet
- La méthode range de l'objet _global a échoué ✓ - Forum VB / VBA
6 réponses
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
18 août 2011 à 17:54
18 août 2011 à 17:54
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+
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
18 août 2011 à 17:25
18 août 2011 à 17:25
Salut,
Essaie avec ceci :
Essaie avec ceci :
$array['commande_details']->destinataire
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
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
24 août 2011 à 16:28
24 août 2011 à 16:28
Sujet résolu ?
Ouep mais solution disparue ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
24 août 2011 à 16:31
24 août 2011 à 16:31
Si tu parles de la désérialisation, elle est montée en premiere réponse :)