2011-08-18 5 views
0

je la structure suivante:Comment faire cela en une ligne en utilisant PHP

$par4 = json_decode($source_code)->$par1->$par2->$par3; 
$par5 = $par4[0]->attributes->attribute[1]->value; 

où PAR1, PAR2 et par3 sont des chaînes. Comment chaîner le par4 et par5 sur une ligne.

Cela ne fonctionne pas en raison du tableau/imbrication d'objets que je suppose:

json_decode($source_code)->$par1->$par2->$par3[0]->attributes->attribute[1]->value; 

est ici l'erreur:

Undefined property: stdClass::$o 
+0

la structure du source_code de $ serait utile – Sleeperson

+0

Pouvez-vous nous montrer ce que source_code $ ressemble? – F21

+0

Oui: http://apps.db.ripe.net/whois/search.json?flags=&source=ripe&query-string=8.8.8.8 –

Répondre

3

Qu'en est-

$par5 = current(json_decode($source_code)->$par1->$par2->$par3)->attributes->attribute[1]->value; 

Cela fonctionne si vous avez toujours besoin de la première (0e) valeur du tableau.

Vous pouvez également créer une fonction qui renvoie la nième valeur:

function third_value($arr) { return $arr[2]; } 
$par5 = third_value(json_decode($source_code)->$par1->$par2->$par3)->attributes->attribute[1]->value; 
1

Je ne sais pas, ce que vous avez vraiment besoin, mais essayez d'utiliser { } pour mettre en évidence ce que vous avez besoin

{json_decode($source_code)->$par1->$par2->$par3}[0] // I think this is right 
json_decode($source_code)->$par1->$par2->${par3[0]} 
json_decode($source_code)->$par1->$par2->{$par3[0]} 
Questions connexes