如何获得数组的最后一个键?


当前回答

一个解决方案是使用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()以将指针带回数组的开头。

其他回答

$array = array(
    'something' => array(1,2,3),
    'somethingelse' => array(1,2,3,4)
);

$last_value = end($array);
$last_key = key($array); // 'somethingelse'

这是因为PHP在内部移动$array的数组指针

用array_reverse()试试这个。

 $arr = array(
     'first' => 01,
     'second' => 10,
     'third' => 20, 
 );  
 $key = key(array_reverse($arr));
 var_dump($key);

尝试保持与旧版本PHP的兼容性:

$array_keys    = array_keys( $array );
$last_item_key = array_pop( $array_keys );

我更喜欢

end(array_keys($myarr))

很奇怪,但是这个话题为什么没有这个答案:

$lastKey = array_keys($array)[count($array)-1];