$value = reset($arr);
$key = key($arr);
(以该顺序)
unset($arr[$key]); # in case you want to remove it.
但是array_pop()PHP Manual正在使用最后一个元素:
$value = end($arr);
$key = key($arr);
unset($arr[$key]); # in case you want to remove it.
为了乐趣:
list($value, $key) = array(end($arr), key($arr));
要么
extract(array('value'=>end($arr), 'key'=>key($arr)));
要么
end($arr);
list($key, $value) = each($arr);
或任何你喜欢的游戏风格;)
处理空数组
目前为止处理空数组时缺少。因此,需要检查是否存在最后(第一个)元素,如果没有,则将$ key设置为null(因为null不能是数组键):
for($key=null;$key===null&&false!==$value=end($arr);)
unset($arr[$key=key($arr)]);
这将给出一个像$ arr = array(‘first’=>’1st’,’last’=>’2nd。’)的填充数组。
string(4) "2nd." # value
string(4) "last" # key
array(1) { # leftover array
["first"]=>
string(3) "1st"
}
和一个空数组:
bool(false) # value
NULL # key
array(0) { # leftover array
}
害怕使用unset?
如果您不信任unset()具有所需的性能(其中我认为这不是一个问题,尽管我没有运行任何指标),您也可以使用本机的array_pop()实现(但我真的认为unset()作为一个语言结构可能会更快):
end($arr);
$key = key($arr);
$value = array_pop($arr);