的var_dump($响应);
输出:
array(1) { ["metafields"]=> array(1) { [13]=> array(10) { ["id"]=> int(32616923206) ["namespace"]=> string(7) "ly26638" } } }
array(1) { ["metafields"]=> array(1) { [13]=> array(10) { ["id"]=> int(32641864774) ["namespace"]=> string(7) "ly26638" } } }
如何将$ response转换为对象来操作它,如下面的代码所示:
echo $response->metafields[0]->id;
我已尝试过以下代码,但没有任何结果:/
$object = json_decode(json_encode($response));
答案 0 :(得分:2)
如果您想访问您的" metafields的id"比如$response = (object) array(
'metafields' => array(
'13' => (object) array(
'id' => 32616923206,
'namespace' => "ly26638"
)
)
);
,那么你需要将你的响应数组转换为object。
实施例
$response->metafields[13]->id
然后您可以使用Parameter A=1,Parameter B=3.87,Parameter C=5.6,Has cancer = yes
之类的语法来访问" id"值。
答案 1 :(得分:1)
如果使用(object) $response
创建对象,子元素仍将是数组。然后你可以做
$response->metafields[13][id]
如果你想要整个链中的对象符号,你需要像sandip所提供的功能。
但为什么不打这个电话:
$response[metafields][13][id]
答案 2 :(得分:0)
您无法通过'[]'找到对象的成员。
'[]'用于数组,' - >'是为了对象。
因此输出空白的原因是: metafields [0] 。
以下代码错误:
echo $response->metafields[0]->id;
所以你应该改变数组的键,数组的键不应该是纯数。
我尝试将密钥更改为'a13',代码为:
echo $response->metafields->a13->id;
我得到了“32616923206”。
这就是全部。 O(∩_∩)O〜