현재 위치: > 최신 기사 목록> array_slice에서 길이 0과 null의 차이

array_slice에서 길이 0과 null의 차이

gitbox 2025-05-29

PHP에서 Array_Slice 함수는 배열에서 하위 배열을 추출하는 데 사용되는 일반적인 도구입니다. 기능 프로토 타입은 다음과 같습니다.

 array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)

여기서 매개 변수 $ 길이는 가로 채울 요소의 수를 지정하는 데 사용됩니다. 그러나 $ 길이가 0 이거나 null 이면 동작이 다릅니다. 이 기사는이 두 경우에서 array_slice 의 차이점을 자세히 분석합니다.

1. 기본 지침

  • $ 배열 : 입력 배열.

  • $ OFFSET : 가로 채기 시작 위치, 음수가 지원됩니다.

  • $ 길이 : 차단 된 요소의 수, 기본 널이라면 배열 끝에 가로 채기를 의미합니다.

  • $ preserve_keys : 원래 배열의 키 이름을 유지할지 여부.

2. $ 길이가 null 일 때

Array_Slice를 호출 할 때 $ 길이 매개 변수가 전달되지 않거나 전달 된 값이 NULL 인 경우 PHP는 $ 오프셋 에서 배열 끝까지 가로 채 웁니다.

예:

 $arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, NULL);
print_r($result);

산출:

 Array
(
    [0] => 3
    [1] => 4
    [2] => 5
)

설명 : 인덱스 2에서 시작하여 배열 끝까지 가로 채기.

3. $ 길이가 0 일 때

$ 길이가 0 으로 명시 적으로 설정되면 Array_Slice는 빈 배열을 반환합니다. 즉, 배열의 시간에 관계없이 가로 채는 길이는 0이므로 요소가 반환되지 않습니다.

예:

 $arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, 0);
print_r($result);

산출:

 Array
(
)

설명 : 길이를 0으로 지정하고 요소를 가로 채지 마십시오.

4. 요약 및 비교

길이 매개 변수 반환 결과 설명
오프셋에서 배열 끝까지 모든 요소 기본 동작, 나머지 모든 요소를 ​​가로 채십시오
0 빈 배열 길이를 가로 채면 결과는 빈 배열입니다.

5. 실제 응용 프로그램 제안

  • 배열의 꼬리를 가로 채려면 $ 길이 매개 변수를 생략하거나 명시 적으로 NULL을 통과하는 것이 좋습니다.

  • 실수로 빈 배열을 반환하지 않으려면 $ 길이를 0 으로 설정하지 않도록주의하십시오.

  • 동적으로 전달 된 매개 변수의 경우, 결과에 영향을 미치기 위해 0을 통과하지 않도록 유형 판단을하십시오.

6. 추가 예제 - 키 이름을 유지하십시오

 $arr = ['a' => 1, 'b' => 2, 'c' => 3];
$result = array_slice($arr, 1, NULL, true);
print_r($result);

산출:

 Array
(
    [b] => 2
    [c] => 3
)

여기에서 NULL은 남은 모든 요소를 ​​가로 채고 원래 키 이름을 유지하기 위해 전달됩니다.

7. 관련 링크