PHP:从数组到字符串的关键变化
PHP: Key Changes from Array to String
我是 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)
会 return 一个数组,直到最后一个 foreach 循环。在进入最后一个 foreach 循环之前,var_export($key['admin_creator']);
会 return 一个这样的数组:
array ( 'name' => 'NAME', 'id' => 'ID', )array ( 'name' => 'NAME', 'id' => 'ID', )
但是,当我尝试检索 'name'、var_export($key);
returns 字符串的值时,在 foreach 循环内:
'NAME''ID''NAME''ID'
并使用 echo $key['name'] . '<br>';
只会打印第一个字符并给出非法字符串偏移警告。
因为我是 PHP 的新手,所以我想知道是否有办法解决这个问题并获取 'name' 的值。由于它 returns 作为字符串,我无法导出 'name' 字段的值。
*请注意,'name' 和 'id' 指的是字段,而 NAME 和 ID 是 'name' 和 'id' 值的替换值。
在 PHP 中,数组可以用数字索引,表现得像其他语言的传统数组,或者它们可以有字符串索引,表现得更像列表。您仍然可以使用 foreach
遍历列表,因此您的内部循环首先将 $key
设置为字符串 'NAME',然后是字符串 'ID'.
要直接访问列表的name
属性,只需使用$key['admin_creator']['name']
。在您的示例中,您可以将内部循环替换为
if (isset($key['admin_creator'])) {
echo $key['admin_creator']['name'] . '<br>';
}
我是 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)
会 return 一个数组,直到最后一个 foreach 循环。在进入最后一个 foreach 循环之前,var_export($key['admin_creator']);
会 return 一个这样的数组:
array ( 'name' => 'NAME', 'id' => 'ID', )array ( 'name' => 'NAME', 'id' => 'ID', )
但是,当我尝试检索 'name'、var_export($key);
returns 字符串的值时,在 foreach 循环内:
'NAME''ID''NAME''ID'
并使用 echo $key['name'] . '<br>';
只会打印第一个字符并给出非法字符串偏移警告。
因为我是 PHP 的新手,所以我想知道是否有办法解决这个问题并获取 'name' 的值。由于它 returns 作为字符串,我无法导出 'name' 字段的值。
*请注意,'name' 和 'id' 指的是字段,而 NAME 和 ID 是 'name' 和 'id' 值的替换值。
在 PHP 中,数组可以用数字索引,表现得像其他语言的传统数组,或者它们可以有字符串索引,表现得更像列表。您仍然可以使用 foreach
遍历列表,因此您的内部循环首先将 $key
设置为字符串 'NAME',然后是字符串 'ID'.
要直接访问列表的name
属性,只需使用$key['admin_creator']['name']
。在您的示例中,您可以将内部循环替换为
if (isset($key['admin_creator'])) {
echo $key['admin_creator']['name'] . '<br>';
}