我正在尝试为口袋妖怪网站浏览一系列动作。我正在使用API PokeApi(https://pokeapi.co/)。
我的问题是如何使用普通的PHP访问这些数组中的移动。 我试着用这个来叫1个招。但是我不知道如何访问数组中的数据。就像“ move-> version-group-details”一样。
$base = "https://pokeapi.co/api/v2/pokemon/";
$id = 1;
$data = file_get_contents($base.$id."/");
$pokemon = json_decode($data);
echo $pokemon->moves[0];
预先感谢:)
答案 0 :(得分:2)
所以这里有两种方法,当我运行时可以这样做
$base = "https://pokeapi.co/api/v2/pokemon/";
$id = 1;
$data = file_get_contents($base.$id."/");
$pokemon = json_decode($data);
print_r($pokemon->moves[0]);
我得到结果:
stdClass Object
(
[move] => stdClass Object
(
[name] => razor-wind
[url] => https://pokeapi.co/api/v2/move/13/
)
[version_group_details] => Array
(
[0] => stdClass Object
(
[level_learned_at] => 0
[move_learn_method] => stdClass Object
(
[name] => egg
[url] => https://pokeapi.co/api/v2/move-learn-method/2/
)
[version_group] => stdClass Object
(
[name] => crystal
[url] => https://pokeapi.co/api/v2/version-group/4/
)
)
[1] => stdClass Object
(
[level_learned_at] => 0
[move_learn_method] => stdClass Object
(
[name] => egg
[url] => https://pokeapi.co/api/v2/move-learn-method/2/
)
[version_group] => stdClass Object
(
[name] => gold-silver
[url] => https://pokeapi.co/api/v2/version-group/3/
)
)
)
)
如果要访问动作名称,则必须运行$pokemon->moves[0]->move->name
,因为我们要返回一个对象。如果要在version_group_details的move_learn_method中获取名称,则必须运行
$pokemon->moves[0]->version_group_details[0]-> move_learn_method->name
或者,如果要返回所有数组而不是对象,只需运行
$base = "https://pokeapi.co/api/v2/pokemon/";
$id = 1;
$data = file_get_contents($base.$id."/");
$pokemon = json_decode($data, true);
print_r($pokemon['moves'][0]);
现在将返回
Array
(
[move] => Array
(
[name] => razor-wind
[url] => https://pokeapi.co/api/v2/move/13/
)
[version_group_details] => Array
(
[0] => Array
(
[level_learned_at] => 0
[move_learn_method] => Array
(
[name] => egg
[url] => https://pokeapi.co/api/v2/move-learn-method/2/
)
[version_group] => Array
(
[name] => crystal
[url] => https://pokeapi.co/api/v2/version-group/4/
)
)
[1] => Array
(
[level_learned_at] => 0
[move_learn_method] => Array
(
[name] => egg
[url] => https://pokeapi.co/api/v2/move-learn-method/2/
)
[version_group] => Array
(
[name] => gold-silver
[url] => https://pokeapi.co/api/v2/version-group/3/
)
)
)
)
因此,不必使用对象访问器->
,可以使用数组表示法访问数据,而不是
$pokemon->moves[0]->version_group_details[0]-> move_learn_method->name
您现在可以使用:
$pokemon['moves']['version_group_details'][0]['move_learn_method']['name']
希望有帮助。