Ответ 1
Это должно работать нормально
$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));
Как я могу получить с PHP самый высокий ключ/индекс в массиве? Я знаю, как это сделать для значений.
например. Из этого массива я хотел бы получить "10" в качестве целочисленного значения:
$arr = array( 1 => "A", 10 => "B", 5 => "C" );
Я знаю, как я мог его программировать, но я спрашивал себя, есть ли функция для этого.
Это должно работать нормально
$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));
Вы можете получить максимальный ключ таким образом:
<?php
$arr = array("a"=>"test", "b"=>"ztest");
$max = max(array_keys($arr));
?>
$keys = array_keys($arr);
$keys = rsort($keys);
print $keys[0];
должен печатать "10"
У меня была ситуация, когда мне нужно было получить следующий доступный ключ в массиве, который является самым высоким + 1.
Например, если массив $ data = ['1' => 'что-то, '34' => 'что-то еще'], мне нужно было вычислить 35, чтобы добавить новый элемент в массив с ключом выше, чем любой из других. В случае пустого массива мне понадобился 1 как следующий доступный ключ.
Вот решение, которое сработало:
$highest = 0;
foreach($data as $idx=>$dummy)
{
if($idx > $highest)$highest=$idx;
}
$highest++;
Это будет работать во всех случаях, пустой массив или нет. Если вам нужно только найти самый высокий ключ, а не самый высокий ключ + 1, удалите последнюю строку. Затем вы получите значение 0, если массив пуст.
Попробуйте max(): http://php.net/manual/en/function.max.php См. Первый комментарий на этой странице
<?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/>";
?>