我对PHP很新,并且正在使用Facebook PHP SDK。下面,我试图从Facebook Graph API获取'admin_creator'的'name'字段,但是密钥从数组变为字符串。
foreach($getAdminCreator as $key){
//var_export($key);
if(isset($key['admin_creator'])){
//var_export($key);
//var_export($key['admin_creator']);
foreach ($key['admin_creator'] as $key){
//var_export($key);
//echo $key['name'] . '<br>';
}
}
}
整个过程都有效,var_export(key)
将返回一个数组,直到最后一个foreach循环。在进入最后一个foreach循环之前,var_export($key['admin_creator']);
将返回如下数组:
array ( 'name' => 'NAME', 'id' => 'ID', )array ( 'name' => 'NAME', 'id' => 'ID', )
但是,当我尝试检索'name'的值时,在foreach循环内,var_export($key);
返回字符串:
'NAME''ID''NAME''ID'
并使用echo $key['name'] . '<br>';
只打印第一个字符并提供非法字符串偏移警告。
由于我是PHP的新手,我想知道是否有办法解决这个问题并获取'name'的值。由于它以字符串形式返回,因此无法导出“name”字段的值。
*请注意,'name'和'id'表示字段,而NAME和ID是'name'和'id'值的替换值。
答案 0 :(得分:0)
在PHP中,数组可以进行数字索引,其行为与其他语言的传统数组相似,或者它们可以具有字符串索引,行为更像列表。您仍然可以使用foreach
遍历列表,因此您的内部循环首先将$key
设置为字符串'NAME',然后设置字符串'ID'。
要直接访问列表的name
属性,您只需使用$key['admin_creator']['name']
即可。在您的示例中,您可以使用
if (isset($key['admin_creator'])) {
echo $key['admin_creator']['name'] . '<br>';
}