我有以下结构:
$par4 = json_decode($source_code)->$par1->$par2->$par3;
$par5 = $par4[0]->attributes->attribute[1]->value;
其中par1,par2和par3是字符串。如何在一行上链接par4和par5。
这不起作用,因为我猜想数组/对象嵌套:
json_decode($source_code)->$par1->$par2->$par3[0]->attributes->attribute[1]->value;
这是错误:
Undefined property: stdClass::$o
答案 0 :(得分:3)
怎么样?
$par5 = current(json_decode($source_code)->$par1->$par2->$par3)->attributes->attribute[1]->value;
如果您始终需要数组的第一个(第0个)值,则此方法有效。
您还可以创建一个返回第n个值的函数:
function third_value($arr) { return $arr[2]; }
$par5 = third_value(json_decode($source_code)->$par1->$par2->$par3)->attributes->attribute[1]->value;
答案 1 :(得分:1)
我不确定,你真正需要的是尝试使用{}突出显示你需要的东西
{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]}