获取数组中最后一个元素的键名

15

嘿,我有一个包含一组数组的数组,这是一个示例。

array(
    [0]=>array('name'=>'bob'),
    [2]=>array('name'=>'tom'),
    [3]=array('name'=>'mark')
)

如何获取数组中的最后一项并返回它的键。

所以在上面的示例中,它会返回3。


count($array);是什么意思?^^ - dynamic
@yes123 如果键是数字且按照精确顺序排列且没有任何缺失,则此方法将无法工作。 - Dunhamzzz
2
可能是如何获取数组中的最后一个键?的重复问题。 - Gordon
5个回答

33
end($array);
echo key($array)

这应该返回最后一个元素的键。


1
在这个解决方案中,数组的指针被修改为数组的最后一个位置。 - jruzafa

14

尝试使用 $lastKey = end(array_keys($array));


@yes123 那又怎样?它仍然有效,而且所有代码都在一行中,这很好。 - Dunhamzzz
15
我不想过于追求细节,但这会导致出现“Strict Standards: Only variables should be passed by reference …”的提示信息。 - Yoshi

4
<?php
$a = array(
    0=>array('name'=>'bob'),
    2=>array('name'=>'tom'),
    3=>array('name'=>'mark')
);


$b = array_keys($a);
echo end($b);

?>

something like this


3

另一个选项:

$last_key = key(array_slice($array, -1, true));

这样做不会保留键,这可能是这里的要求。 - nate

0
你可以创建函数并使用它:
function endKey($array){
end($array);
return key($array);
}

$array = array("one" => "apple", "two" => "orange", "three" => "pear");
echo endKey($array);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接