100

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

例如:从这个数组中我想得到10一个integer值:

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

我知道如何编写代码,但我在问自己是否也有这样的功能。

4

7 回答 7

222

这应该可以正常工作

$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));
于 2011-05-25T14:34:33.570 回答
33

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

<?php
$arr = array("a"=>"test", "b"=>"ztest");
$max = max(array_keys($arr));
?>
于 2011-05-25T14:36:31.353 回答
2

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

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

这是有效的解决方案:

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

它适用于所有情况,无论是否为空数组。如果您只需要查找最高键而不是highest key + 1,请删除最后一行。

然后,您将获得0数组是否为空的值。

于 2019-09-30T07:41:28.180 回答
1
$keys = array_keys($arr);
$keys = rsort($keys);

print $keys[0];

应该打印“10”

于 2011-05-25T14:33:56.510 回答
0

尝试max()函数,请参阅该页面上的第一条评论。

于 2011-05-25T14:33:55.800 回答
0
function getMaxKey(array $array): ?int
{
    if ($array === []) {
        return null;
    }

    return max(0, ...array_keys($array));
}

假设你没有像这样的否定键int -1

于 2021-09-21T14:37:52.007 回答
-2
$higestKey = 0;
foreach ($data as $key => $value) {
    if (strlen($key) > $higestKey) $higestKey = strlen($key);
}
于 2021-07-17T23:56:50.167 回答