PHP:从数组到字符串的关键更改

时间:2016-06-23 02:08:48

标签: php arrays facebook foreach facebook-php-sdk

我对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'值的替换值。

1 个答案:

答案 0 :(得分:0)

在PHP中,数组可以进行数字索引,其行为与其他语言的传统数组相似,或者它们可以具有字符串索引,行为更像列表。您仍然可以使用foreach遍历列表,因此您的内部循环首先将$key设置为字符串'NAME',然后设置字符串'ID'。

要直接访问列表的name属性,您只需使用$key['admin_creator']['name']即可。在您的示例中,您可以使用

替换内部循环
if (isset($key['admin_creator'])) {
    echo $key['admin_creator']['name'] . '<br>';
}