我从服务获得响应,print_r()
显示数组,但它似乎与通常的数组不同。
如果我打印array_values
它是空的。
PHP:
print_r($token);
//Result: Array ( [{"access_token":"123","token_type":"bearer"}] => )
print_r(array_values($token));
//Result: Array ( [0] => )
为什么array_values
中未列出access_token和token_type值?
答案 0 :(得分:2)
答案不是JSON,这不是因为你有一个JSON类型的数组。这是因为你的数组中没有值。
//Result: Array ( [{"access_token":"123","token_type":"bearer"}] => )
该数组有一个没有值的索引,因此array_values
没有显示任何内容。您已经错误地创建了该数组:)
答案 1 :(得分:1)
我可以用这个来重现你的输出:
$token = array('{"access_token":"123","token_type":"bearer"}' => '');
那是因为你有一个带键的数组
'{"access_token":"123","token_type":"bearer"}'
但没有价值。
要访问数组键中的JSON字符串,您可以这样做:
$keys = array_keys($token);
print_r($keys[0]);
要访问JSON对象,您可以进一步执行
print_r(json_decode($keys[0]));
输出:
(
[access_token] => 123
[token_type] => bearer
)
演示: Fiddle