获取数组倒数第二个元素的键和值

时间:2012-08-03 07:00:38

标签: php arrays

我有一个未定义大小的数组,例如:

<?php
$array["foo"] = 86 ;
$array["bar"] = 49 ;
$array["matt"] = 96 ;
?>

我不想打扰阵列的内部指针,但想要获得数组倒数第二个值的COPY。

3 个答案:

答案 0 :(得分:7)

我不知道,为什么你使用地图,实际上你想要一个有序的清单,但是

$tmp = array_values($array);
echo $tmp[count($tmp) -2];

应该这样做。使用php5.4,这应该工作

echo array_values($array)[count($array)-2];

答案 1 :(得分:2)

我不确定您的阵列的大小是多少,因此将所有值复制到一个单独的数组中可能不是一个好主意。

以下代码从最后一个位置切出一个长度为1的数组,并设置$key$value

$pair = array_slice($array, -2, 1, true);
$key = key($pair);
$value = current($pair);

PS:应该放入一个简单的分离函数吗?!

答案 2 :(得分:0)

你可以这样做。

$array["foo"] = 86 ;
$array["bar"] = 49 ;
$array["matt"] = 96 ;

$x = count($array);

foreach($array as $row)
{
    if($x == 2)
    { $secondLast = $row;}
    $x--; 
}
echo $secondLast;

因为您正在使用关联数组。