我有以下对象:
$json = '{"response": {"status": {"message": "Success"}, "images": [{"url": "http://domain.com/images/0001.jpg"}, {"url": "http://domain.com/images/0001.jpg"}]}}';
$obj = json_decode($json);
然后我有一个数组:
$obj_path = array('response', 'images');
我可以images
内$obj
$obj->$obj_path[0]->$obj_path[1]
$obj_path_count = count($obj_path);
for($i=0; $i<$obj_path_count; $i++)
{
$obj_access_path .= '->' . $obj_path[$i]; //Build path to the access the object?
}
var_dump($obj . $obj_access_path); // Display object images
{{1}}访问{{1}}如果我更加动态地执行此操作?沿着...的路线......
{{1}}
上面的代码给出了以下错误
类stdClass的对象不可能 转换为字符串
答案 0 :(得分:3)
你无法访问这样的完整路径,插值只能达到一个深度。你可以这样做:
$obj_access = $obj;
foreach($obj_path as $path_item)
{
$obj_access = $obj_access->$path_item;
}
var_dump($obj_access); // Display object images
虽然看看你的JSON,但我认为这不会有助于解决你想要解决的问题。