我有以下......
/* Request access tokens from twitter */
$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
$_SESSION['access_token'] = $access_token;
echo $access_token[2];
“$ access_token”是一个数组,我试图从这个数组中检索一个值,只有上面的回声似乎没有回应什么?
dump var
array(4) { ["oauth_token"]=> string(50) "81920494-vHspkpas4WiOYoFKCgto85mW2XeTxuA130MwcHHWb" ["oauth_token_secret"]=> string(42) "WwIYybFivEwZQ1ORbeqY1irHT385EIuh27alWy9ED4" ["user_id"]=> string(8) "81989494" ["screen_name"]=> string(12) "KlareB" }
答案 0 :(得分:5)
如果var_dump是:
array(4) { ["oauth_token"]=> string(50) "81920494-vHspkpas4WiOYoFKCgto85mW2XeTxuA130MwcHHWb" ["oauth_token_secret"]=> string(42) "WwIYybFivEwZQ1ORbeqY1irHT385EIuh27alWy9ED4" ["user_id"]=> string(8) "81920494" ["screen_name"]=> string(12) "KlareBrennan" }
然后echo $access_array[2];
不会工作,因为它没有按数字索引。
您需要这样做:
echo $access_array['user_id'];
答案 1 :(得分:1)
有必要记住,在PHP数组中实际上是散列图。也就是说它们是key => value
对的关联数组。
$_SESSION['access_token'] = $access_token;
echo $access_token[2];
这意味着上述代码将在$access_token
数组中查找,而不是在位置 2
,而是在键 2
。我们可以从你的vardump看到没有键2
:
array(4) {
["oauth_token"]=> string(50) "81920494-vHspkpas4WiOYoFKCgto85mW2XeTxuA130MwcHHWb
["oauth_token_secret"]=> string(42) "WwIYybFivEwZQ1ORbeqY1irHT385EIuh27alWy9ED4"
["user_id"]=> string(8) "81920494"
["screen_name"]=> string(12) "KlareBrennan"
}
请注意,对于大多数索引数组,此功能完全相同,这会导致您的混淆。请考虑以下代码:
<?php
$blah = array();
$blah['mykey'] = "My first key.";
$blah[] = "My second key.";
$blah[1] = "My third key.";
$blah[] = "My last key.";
var_dump($blah);
结果是:
array(4) {
["mykey"]=>
string(13) "My first key."
[0]=>
string(14) "My second key."
[1]=>
string(13) "My third key."
[2]=>
string(12) "My last key."
}
我们可以看到,如果没有指定密钥,则使用下一个可用密钥;并且在这些数字中被指定为键值对的键,但它们可以与字符串键一起存在。因此,array_values()
是一个有用的函数,如果你想迭代所有数组的内容。