如何获得数组的最后一个键?
当前回答
一个解决方案是使用end和key的组合(引用):
End()将数组的内部指针前进到最后一个元素,并返回它的值。 Key()返回当前数组位置的索引元素。
因此,像这样的一部分代码应该可以做到:
$array = array(
'first' => 123,
'second' => 456,
'last' => 789,
);
end($array); // move the internal pointer to the end of the array
$key = key($array); // fetches the key of the element pointed to by the internal pointer
var_dump($key);
将输出:
string 'last' (length=4)
也就是数组最后一个元素的键值。
完成此操作后,数组的内部指针将位于数组的末尾。正如注释中所指出的,您可能希望在数组上运行reset()以将指针带回数组的开头。
其他回答
我还想为这个问题提供另一种解决方案。
假设你所有的钥匙都是数字,没有缝隙, 我的首选方法是计算数组,然后从该值减去1(以解释数组键从0开始的事实。
$array = array(0=>'dog', 1=>'cat');
$lastKey = count($array)-1;
$lastKeyValue = $array[$lastKey];
var_dump($lastKey);
print_r($lastKeyValue);
这将给你:
int (1) 猫
只需使用:echo $array[count($array) - 1];
我更喜欢
end(array_keys($myarr))
自PHP 7.3(2018)以来,(终于)有了这个函数: http://php.net/manual/en/function.array-key-last.php
$array = ['apple'=>10,'grape'=>15,'orange'=>20];
echo array_key_last ( $array )
将输出
orange
$array = array(
'something' => array(1,2,3),
'somethingelse' => array(1,2,3,4)
);
$last_value = end($array);
$last_key = key($array); // 'somethingelse'
这是因为PHP在内部移动$array的数组指针