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


92

如何使用PHP获得数组中最高的键/索引?我知道如何做到这些。

例如,我想从该数组中获取“ 10”作为整数值:

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

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

Answers:


205

这应该工作正常

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

您是否知道如果像这样设置一个键,它是否也能正常工作:$ arr = array(1 =>“ A”,10 =>“ B”,5 =>“ C”,“ 15” =>“ D “);
拉斐尔·卢西格

2
@Raffael Luthiger尝试对其进行测试,看看是否获得正确的结果。
乔纳森·库恩

1
这不能处理空数组的情况。直接来自PHP手册maxIf an empty array is passed, then FALSE will be returned and an E_WARNING error will be emitted.
Siphon

33

您可以通过以下方式获取最大密钥:

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

抱歉,有人在我面前发布了相同的答案。
Fabrizio D'Ammassa

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

print $keys[0];

应打印“ 10”


2

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

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

这是有效的解决方案:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.