2012-08-03 46 views
1

我有未定义大小的数组的倒数第二个元素的值,例如:得到键和一个数组

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

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

回答

7

我不知道,为什么你使用地图的时候,其实你想要一个有序列表,而不是,但

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

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

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

我也想第二个最后一个键... – 2012-08-03 07:11:08

+5

使用'array_keys($ array)[count($ array)-2];' – 2012-08-03 07:20:10

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; 

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

1

我不确定你的数组的大小是多少,所以将所有值复制到一个单独的数组可能不是一个好主意。

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

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

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

相关问题