搜索数组中的最高键/索引

时间:2011-05-25 14:30:27

标签: php arrays key highest

如何使用PHP获得数组中的最高键/索引?我知道如何为价值观做这件事。

E.g。从这个数组我想得到“10”作为整数值:

$arr = array( 1 => "A", 10 => "B", 5 => "C" );

我知道如何编程,但我也在问自己是否也有这个功能。

6 个答案:

答案 0 :(得分:190)

这应该可以正常工作

$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));

答案 1 :(得分:31)

您可以通过这种方式获得最大密钥:

<?php
$arr = array("a"=>"test", "b"=>"ztest");
$max = max(array_keys($arr));
?>

答案 2 :(得分:2)

$keys = array_keys($arr);
$keys = rsort($keys);

print $keys[0];

应打印“10”

答案 3 :(得分:2)

我遇到一种情况,需要获取数组中的下一个可用键,即最高的+1。

例如,如果数组是$ data = ['1'=>'something,'34'=>'something''],那么我需要计算35以将新元素添加到具有键的数组中高于其他任何一个。对于空数组,我需要1作为下一个可用键。

这是可行的解决方案:

    $highest = 0;
    foreach($data as $idx=>$dummy)
    {
        if($idx > $highest)$highest=$idx;
    }
    $highest++;

它将在所有情况下都起作用,无论是否为空数组。如果您只需要找到最高键而不是最高键+ 1,则删除最后一行。如果数组为空,则将得到0值。

答案 4 :(得分:0)

尝试max():http://php.net/manual/en/function.max.php 请参阅该页面上的第一条评论

答案 5 :(得分:-1)

$higestKey = 0;
foreach ($data as $key => $value) {
    if (strlen($key) > $higestKey) $higestKey = strlen($key);
}