>백엔드 개발 >PHP 튜토리얼 >PHP 배열이 순차 목록인지 어떻게 확실하게 확인할 수 있습니까?

PHP 배열이 순차 목록인지 어떻게 확실하게 확인할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-20 12:14:09519검색

How Can I Reliably Determine if a PHP Array is a Sequential List?

연관 및 순차 PHP 배열 구별

PHP는 본질적으로 모든 배열을 연관 배열로 인식하므로 목록처럼 동작하는 배열을 구별하기가 어렵습니다. 이 문제를 해결하기 위해 우리는 배열이 목록에 적합한지 확인하는 신뢰할 수 있는 방법을 모색합니다.

목록 대 연관 배열

  • 목록( 순차 배열): 0부터 시작하는 숫자 키만 포함하여 시퀀스.
$sequentialArray = [
    'apple', 'orange', 'tomato', 'carrot'
];
  • 연관 배열: 문자열과 숫자 키로 구성되어 보다 다양한 데이터 구성이 가능합니다.
$assocArray = [
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'veg1' => 'tomato',
    'veg2' => 'carrot'
];

PHP 8.1에서 목록 식별 및 Beyond

PHP 8.1에서는 배열이 목록인지 편리하게 확인할 수 있는 array_is_list()를 도입했습니다.

array_is_list($sequentialArray); // true

이전 PHP 버전을 위한 레거시 솔루션

8.1 이전 PHP 버전에 맞춰 사용자 정의를 정의할 수 있습니다. 함수:

function array_is_list(array $arr)
{
    if ($arr === []) {
        return true;
    }
    return array_keys($arr) === range(0, count($arr) - 1);
}

함수 테스트

var_dump(array_is_list([])); // true
var_dump(array_is_list(['a', 'b', 'c'])); // true
var_dump(array_is_list(["0" => 'a', "1" => 'b', "2" => 'c'])); // true
var_dump(array_is_list(["1" => 'a', "0" => 'b', "2" => 'c'])); // false
var_dump(array_is_list(["a" => 'a', "b" => 'b', "c" => 'c'])); // false

이러한 방법을 활용하면 개발자는 연관 배열과 순차 배열을 효과적으로 구분할 수 있어 더욱 정확하고 효율적인 배열이 가능해집니다. PHP 애플리케이션에서 처리합니다.

위 내용은 PHP 배열이 순차 목록인지 어떻게 확실하게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.