【问题标题】:How to get the exact value of the last array index in PHP?如何获取PHP中最后一个数组索引的确切值?
【发布时间】:2018-01-18 18:37:28
【问题描述】:

目前我有一个数组$newArr,其中包含一些元素,如下图所示。如何知道数组索引的最后一位(以黄色突出显示)?

这很重要,因为如果以后我想在这个 $newArr 数组中插入一条新记录,我可以这样做

$newArr[$the_variable_that_holds_the_last_digit + 1] = ['foo', 'bar'];

否则整个数组覆盖 if

$newArr = ['foo', 'bar'];

【问题讨论】:

  • 你可以使用end方法
  • 已经给出了很多答案。我只想补充一点,如果你想在数组末尾添加一个值,你可以这样做 $newArr[] = ['foo', 'bar'];array_push($newArr, ['foo', 'bar']);

标签: php


【解决方案1】:

我觉得你可以试试这个

$array = end($newArr);

$last_index = key($array);//Its display last key of array

更多详情请关注this link

【讨论】:

  • key 将只提供当前密钥,即首先,您需要将指针移动到最后一个然后访问密钥
  • @begineeeerrrr 如果我的回答是你的解决方案,那么请接受我的回答
  • 不,这不是答案,因为 OP 想要最后一个元素的键,而不是最后一个元素。 end() 返回数组的最后一个元素。
  • 为什么 key($newArr) 返回 0?它应该是 2,不是吗?
【解决方案2】:

假设你有数字索引数组,你数组的最后一个索引是:

$last_index = count($newArr) -1;

如果你的键不是连续的,你可以这样做:

end($newArr);
$last_key = key($newArr);

【讨论】:

  • 如果你的数组看起来像这样就不好了:['0' => ..., '1' => ..., '3' => ...].
  • 这就是为什么我说Assuming you have the numerically indexed array。该解决方案仅适用于数字键。
  • 0,1,3,7 是数字,它们只是不连续的。 count = 4Highest index value = 7
  • 好的,我编辑了答案。检查一下,让我知道这是否有效。
  • 为什么 key($newArr) 返回 0?它应该是 2,不是吗?
【解决方案3】:

我想你正在寻找end指针

$array = array(
    'a' => 1,
    'b' => 2,
    'c' => 3, 
);

end($array);         // it will point to last key
$key = key($array); // get the last key using `key`

【讨论】:

  • 为什么 key($newArr) 返回 0?它应该是 2,不是吗?
  • 是的,如果一切正常,它应该返回 2,如果你粘贴我的示例,它将返回 $key = c
【解决方案4】:

如果唯一的原因是不覆盖您可以使用 [] 的值,这意味着添加新值。

$arr = [1,2,3,4];
var_dump($arr);

// incorrect way:
$arr = [1,2];
var_dump($arr);

//correct way
$arr = [1,2,3,4];
$arr[] = [1,2];
var_dump($arr);

输出见这里:https://3v4l.org/ZTg28

上面例子中的“正确方法”会在数组中输入一个新的数组。
如果您只想添加需要的值,则一次插入一个。

$arr[] = 1;
$arr[] = 2;

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 2021-12-27
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多