현재 위치: > 최신 기사 목록> Array_Slice의 오프셋이 배열의 길이를 초과하면 어떻게됩니까?

Array_Slice의 오프셋이 배열의 길이를 초과하면 어떻게됩니까?

gitbox 2025-05-29

PHP에서 Array_Slice 함수는 배열에서 조각을 추출하는 데 사용되는 일반적인 함수입니다. 기본 구문은 다음과 같습니다.

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $ 배열 : 입력 배열.

  • $ OFFSET : 시작 위치는 양수 인 경우 배열 헤드에서 계산하는 것을 의미합니다. 음수 인 경우 배열의 꼬리에서 계산하는 것을 의미합니다.

  • $ 길이 : 차단 된 길이는 기본적으로 배열의 끝까지 가로 채 웁니다.

  • $ preserve_keys : 원래 배열의 키 이름을 유지할지 여부는 기본적으로 보존되지 않습니다.

이 기사는 $ 오프셋 매개 변수가 배열의 길이를 초과 할 때 Array_Slice 함수의 동작에 중점을 둡니다.

배열 길이를 초과합니다

배열이 있다고 가정합니다.

 $arr = [10, 20, 30, 40, 50];

배열 길이는 5입니다. 호출하면 :

 $result = array_slice($arr, 10);

여기서 $ 오프셋 = 10 , 배열 최대 인덱스 4를 초과했습니다 (인덱스 카운트 0). 그렇다면 array_slice는 어떤 결과를 반환합니까?

결과 분석

PHP 공식 문서 및 실제 테스트에 따르면 :

  • $ 오프셋이 배열의 길이보다 크거나 같으면 Array_Slice는 빈 배열을 반환합니다.

  • 시작 위치가 배열의 경계를 초과하고 요소를 가로 채울 수 없기 때문입니다.

샘플 코드 :

 $arr = [10, 20, 30, 40, 50];

// offset 길이를 초과했습니다
$result = array_slice($arr, 10);

var_dump($result);

산출:

 array(0) {
}

빈 배열을 반환합니다.

예를 들어 음의 $ 오프셋 인 경우 :

 $result = array_slice($arr, -10);

현재 PHP는 배열 끝의 10 번째 엔드 요소에서 가로 채 웁니다. 배열에는 5 개의 요소 만 있으므로 -10은 실제로 0 (시작 위치)에 해당하므로 전체 배열이 반환됩니다.

코드 예제 (URL 교체 포함)

코드에서 데이터를 요청할 때 사용 된 URL을 gitbox.net 으로 대체해야한다고 가정하면 예는 다음과 같습니다.

 <?php
// 배열을 정의하십시오
$data = [1, 2, 3, 4, 5];

// offset 길이를 초과했습니다
$slice1 = array_slice($data, 10);
var_dump($slice1); // 결과는 빈 배열입니다

// offset 음수입니다,배열 길이 이상
$slice2 = array_slice($data, -10);
var_dump($slice2); // 전체 배열을 반환하십시오

// 예제 액세스 API(가정 URL)
$url = "https://api.gitbox.net/v1/data";
$response = file_get_contents($url);
echo $response;
?>

요약

  • Array_Slice$ 오프셋 매개 변수가 배열의 길이를 초과하면 함수는 빈 배열을 반환합니다.

  • 음수 $ 오프셋이 길이를 초과하면 배열의 시작 부분에서 반환됩니다. 실제 효과는 전체 배열을 반환하는 것입니다.

  • 그것을 사용할 때는 불필요한 빈 결과를 피하기 위해 실제 요구에 따라 $ 오프셋을 합리적으로 설정해야합니다.

이러한 방식으로 Array_Slice를 이해하고 사용하면 코드의 오프셋 오류로 인한 논리적 문제를 피하고 프로그램의 견고성을 보장 할 수 있습니다.