【问题标题】:Having issues using proper syntax for multidimensional arrays in PHP?在 PHP 中为多维数组使用正确的语法时遇到问题?
【发布时间】:2017-06-04 19:27:56
【问题描述】:

有很多类似的问题——我已经在 Stack 上阅读了几乎所有这些问题,但一直无法理解。

我正在使用 CURL 解码一个 json 文件。我从中检索内容的 URL 是 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,但不能返回“故障”,这是应该返回的。

你能帮忙吗?

【问题讨论】:

    标签: php arrays json multidimensional-array


    【解决方案1】:

    请试试这个

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

    【讨论】:

    • 这确实会从数组中返回一个项目,但不会返回最后一个数组项的“名称”。这将返回“Eli_Silveraxe”。查看带有 JSON 数组的 url,'Malfunction' 将是所需的返回,因为它是最后一个数组项的 'name'。
    • 如果你做这个? $count = count($data) ;你检索什么? @x0y
    • 其实我也试过了。它不返回任何东西。
    • Alessandro,我刚刚将您的建议与return $data[$count]['name']; 结合起来,它成功返回“故障”!这是正确的语法吗?
    • 是的,我更新了答案!很高兴为您提供帮助!问题出在 json_decode 中,因为第二个参数可以帮助您获取关联数组 @x0y 接受答案以帮助其他人解决同样的问题
    【解决方案2】:

    数组中最后一项的索引为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'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2020-01-27
      • 1970-01-01
      • 2021-12-29
      • 2016-11-07
      相关资源
      最近更新 更多