Поиск наивысшего ключа/индекса в массиве

Как я могу получить с PHP самый высокий ключ/индекс в массиве? Я знаю, как это сделать для значений.

например. Из этого массива я хотел бы получить "10" в качестве целочисленного значения:

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

Я знаю, как я мог его программировать, но я спрашивал себя, есть ли функция для этого.

Ответ 1

Это должно работать нормально

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

Ответ 2

Вы можете получить максимальный ключ таким образом:

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

Ответ 3

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

print $keys[0];

должен печатать "10"

Ответ 4

У меня была ситуация, когда мне нужно было получить следующий доступный ключ в массиве, который является самым высоким + 1.

Например, если массив $ data = ['1' => 'что-то, '34' => 'что-то еще'], мне нужно было вычислить 35, чтобы добавить новый элемент в массив с ключом выше, чем любой из других. В случае пустого массива мне понадобился 1 как следующий доступный ключ.

Вот решение, которое сработало:

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

Это будет работать во всех случаях, пустой массив или нет. Если вам нужно только найти самый высокий ключ, а не самый высокий ключ + 1, удалите последнюю строку. Затем вы получите значение 0, если массив пуст.

Ответ 6

<?php 
$array = array( 1 => "A", 10 => "B", 5 => "C" );

foreach ($array as $key => $value) {
   if ($value >= $max) 
    $max = max(array_keys($array));      
}
echo " The array in largest number :".$max."<br/>";
?>