如何获得数组的最后一个键?
当前回答
我还想为这个问题提供另一种解决方案。
假设你所有的钥匙都是数字,没有缝隙, 我的首选方法是计算数组,然后从该值减去1(以解释数组键从0开始的事实。
$array = array(0=>'dog', 1=>'cat');
$lastKey = count($array)-1;
$lastKeyValue = $array[$lastKey];
var_dump($lastKey);
print_r($lastKeyValue);
这将给你:
int (1) 猫
其他回答
我只是从Xander那里获得了帮助函数,并使用之前的答案改进了它:
function last($array){
$keys = array_keys($array);
return end($keys);
}
$arr = array("one" => "apple", "two" => "orange", "three" => "pear");
echo last($arr);
echo $arr(last($arr));
尝试保持与旧版本PHP的兼容性:
$array_keys = array_keys( $array );
$last_item_key = array_pop( $array_keys );
$array = array(
'something' => array(1,2,3),
'somethingelse' => array(1,2,3,4)
);
$last_value = end($array);
$last_key = key($array); // 'somethingelse'
这是因为PHP在内部移动$array的数组指针
最好的解决方案,也可以使用内联:
end($arr) && false ?: key($arr)
这种解决方案只是表达式/语句,提供的性能很好,但不是最好的性能。
内联示例用法:
$obj->setValue(
end($arr) && false ?: key($arr) // last $arr key
);
更新:在PHP 7.3+:使用(当然)新添加的array_key_last()方法。
在PHP >= 7.3中,array_key_last()是获取任何数组的最后一个键的最佳方法。使用end(), key()和reset()的组合来获取数组的最后一个键是过分的。
$array = array("one" => bird, "two" => "fish", 3 => "elephant");
$key = array_key_last($array);
var_dump($key) //output 3
比较一下
end($array)
$key = key($array)
var_dump($key) //output 3
reset($array)
如果使用end()和key()组合,则必须重置数组,使指针位于开头。
推荐文章
- 如何创建数组列表的数组?
- 将字符串数组转换为字符串
- 如何找到JavaScript数组中包含的最大数字?
- 使用PHP加密和解密密码的最佳方法是什么?
- 如何实现一个好的脏话过滤器?
- PHP中的三个点(…)是什么意思?
- Guzzlehttp -如何从guzzle6得到响应的正文?
- 移动一个文件到服务器上的另一个文件夹
- 如何读一个文本文件到一个列表或数组与Python
- Laravel中使用雄辩的ORM进行批量插入
- PHP 5.4调用时引用传递-容易修复可用吗?
- 如何在Python中将十六进制字符串转换为字节?
- 格式化字节到千字节,兆字节,千兆字节
- 如何在PHP中获得变量名作为字符串?
- 与push()相反;