数组显示值,但print_r(Array_values)为空


Array shows values but print_r(array_values) is empty

我收到了来自服务的响应,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值?

答案不是JSON,这不是因为你有一个JSON类型的数组。这是因为您的数组中没有值。

//Result: Array ( [{"access_token":"123","token_type":"bearer"}] => ) 

该数组有一个没有值的索引,因此array_values不显示任何内容。您错误地创建了该数组:(

我可以用这个复制你的输出:

$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