如何获得数组的最后一个键?
当前回答
尝试保持与旧版本PHP的兼容性:
$array_keys = array_keys( $array );
$last_item_key = array_pop( $array_keys );
其他回答
我更喜欢
end(array_keys($myarr))
用array_reverse()试试这个。
$arr = array(
'first' => 01,
'second' => 10,
'third' => 20,
);
$key = key(array_reverse($arr));
var_dump($key);
你可以用这个:
$array = array("one" => "apple", "two" => "orange", "three" => "pear");
end($array);
echo key($array);
另一个解决方案是创建一个函数并使用它:
function endKey($array){
end($array);
return key($array);
}
$array = array("one" => "apple", "two" => "orange", "three" => "pear");
echo endKey($array);
一个解决方案是使用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()以将指针带回数组的开头。
不知道这是否会更快,但似乎更容易这样做,你避免错误不传递函数end()…
它只需要一个变量……多写一行代码,然后在需要时取消设置,这不是什么大问题。
$array = array(
'first' => 123,
'second' => 456,
'last' => 789,
);
$keys = array_keys($array);
$last = end($keys);