2017-06-04 69 views
1

像这样的问题有很多类似的问题 - 我几乎读过Stack的所有这些问题,并且无法将其包围。在PHP中使用正确的多维数组语法时出现问题?

我正在使用CURL解码json文件。我从中检索内容的网址是https://api.mojang.com/user/profiles/e6e37a93864f496383ba362df30f4792/names

将数组正确转换为PHP数组后,我试图返回PHP数组中的最后一项。

我试图使用array_pop,但我无法得到它的工作。我采取了计数数组中的总行数,并使用计数来引用最后一行。

$data = json_decode($output); 

    $count = count($data); 

    return $data[$count]['name'];` 

我甚至试图做

return $data[$count]['name']->name; // OR... 

    return $data[$count]->name; 

这是因为

return $data[0]->name; 

返回 “Eli_Silveraxe”,从数组的值,但不是最后一个值。这些选项都不适用于我,只是因为我可以返回Eli_Silveraxe而变得更加沮丧,而不是“故障”,这是应该返回的。

你能帮忙吗?

回答

0

试试这个请

$data = json_decode($output, true); 
$count = count($data) - 1; 
return $data[$count]['name']; 
+0

这并从数组返回一个项目,但不是最后一个数组项的“名称”。这返回'Eli_Silveraxe'。看看带有JSON数组的URL,'Malfunction'将会是期望的返回,因为它是最后一个数组项'name'。 – x0y

+0

如果你这样做? $ count = count($ data);你找回了什么? @ x0y –

+0

我也尝试过,其实。它不会返回任何东西。 – x0y

0

数组中的最后一个项目有count - 1指数,因此,你需要这样的:

$data = json_decode($output); 
$count = count($data); 
return $data[$count - 1]->name; 

请注意,您不需要第二个参数传递给json_decode(或通过false)获取$data中的对象。另外,通过true和使用关联数组语法:

$data = json_decode($output, true); 
$count = count($data); 
return $data[$count - 1]['name'];