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

发布于 2024-11-09 09:00:15 字数 388 浏览 6 评论 0 原文

如何使用 ?我知道如何为价值观做这件事。

例如:从这个数组中,我想获取 10 作为 integer 值:

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

我知道如何编码它,但我问自己是否有一个函数可以作为出色地。

How can I get the highest key/index in an array with ? I know how to do it for the values.

E.g.: from this array I would like to get 10 as an integer value:

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

I know how I could code it but I was asking myself if there is a function for this as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

小情绪 2024-11-16 09:00:16

这应该可以正常工作

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

This should work fine

$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));
ˇ宁静的妩媚 2024-11-16 09:00:16

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

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

You can get the maximum key this way:

<?php
$arr = array("a"=>"test", "b"=>"ztest");
$max = max(array_keys($arr));
?>
稀香 2024-11-16 09:00:16

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

例如,如果数组为 $data = ['1' => '某事,'34' => 'something else'],然后我需要计算 35 来将一个新元素添加到数组中,该元素的键值高于其他任何元素。在空数组的情况下,我需要 1 作为下一个可用键。

这是有效的解决方案:

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

它在所有情况下都有效,无论是否为空数组。如果您只需要找到最高键而不是最高键 + 1,请删除最后一行。

如果数组为空,您将得到 0 值。

I had a situation where I needed to obtain the next available key in an array, which is the highest + 1.

For example, if the array is $data = ['1' => 'something, '34' => 'something else'], then I needed to calculate 35 to add a new element to the array that had a key higher than any of the others. In the case of an empty array I needed 1 as next available key.

This is the solution that worked:

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

It will work in all cases, empty array or not. If you only need to find the highest key rather than highest key + 1, delete the last line.

You will then get a value of 0 if the array is empty.

So尛奶瓶 2024-11-16 09:00:16
$keys = array_keys($arr);
$keys = rsort($keys);

print $keys[0];

应该打印“10”

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

print $keys[0];

should print "10"

遥远的绿洲 2024-11-16 09:00:16
function getMaxKey(array $array): ?int
{
    if ($array === []) {
        return null;
    }

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

假设您没有像 int -1 这样的负键

function getMaxKey(array $array): ?int
{
    if ($array === []) {
        return null;
    }

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

assuming you don't have negative keys like int -1

ζ澈沫 2024-11-16 09:00:16

尝试 max() 函数,查看该页面上的第一条评论。

Try max() function, see the first comment on that page.

复古式 2024-11-16 09:00:16
$higestKey = 0;
foreach ($data as $key => $value) {
    if (strlen($key) > $higestKey) $higestKey = strlen($key);
}
$higestKey = 0;
foreach ($data as $key => $value) {
    if (strlen($key) > $higestKey) $higestKey = strlen($key);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文