배열에서 가장 높은 키 / 인덱스 검색


92

PHP로 배열에서 가장 높은 키 / 인덱스를 얻으려면 어떻게해야합니까? 나는 가치를 위해 그것을하는 방법을 안다.

예를 들어이 배열에서 정수 값으로 "10"을 얻고 싶습니다.

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

어떻게 프로그래밍 할 수 있는지 알고 있지만 이것에 대한 기능도 있는지 스스로에게 묻고있었습니다.

답변:


205

이것은 잘 작동합니다

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

하나의 키가 다음과 같이 설정 되어도 작동하는지 알고 있습니까? $ arr = array (1 => "A", 10 => "B", 5 => "C", "15"=> "D ");
Raffael Luthiger

2
@Raffael Luthiger를 테스트하고 올바른 결과를 얻었는지 확인하십시오.
Jonathan Kuhn

1
이것은 빈 배열의 경우를 처리하지 않습니다. PHP 매뉴얼에서 바로 max:If 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 else']이면 35를 계산하여 키가 더 높은 배열에 새 요소를 추가해야합니다. 다른 사람의. 빈 배열의 경우 다음 사용 가능한 키로 1이 필요했습니다.

이것이 효과가있는 솔루션입니다.

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

빈 배열이든 아니든 모든 경우에서 작동합니다. 가장 높은 키 + 1이 아닌 가장 높은 키만 찾으려면 마지막 행을 삭제하십시오. 그런 다음 배열이 비어 있으면 0 값을 얻습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.