PHP에서 Array_Slice 함수는 배열에서 하위 배열을 추출하는 데 사용되는 일반적인 도구입니다. 기능 프로토 타입은 다음과 같습니다.
array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)
여기서 매개 변수 $ 길이는 가로 채울 요소의 수를 지정하는 데 사용됩니다. 그러나 $ 길이가 0 이거나 null 이면 동작이 다릅니다. 이 기사는이 두 경우에서 array_slice 의 차이점을 자세히 분석합니다.
$ 배열 : 입력 배열.
$ OFFSET : 가로 채기 시작 위치, 음수가 지원됩니다.
$ 길이 : 차단 된 요소의 수, 기본 널이라면 배열 끝에 가로 채기를 의미합니다.
$ preserve_keys : 원래 배열의 키 이름을 유지할지 여부.
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에서 시작하여 배열 끝까지 가로 채기.
$ 길이가 0 으로 명시 적으로 설정되면 Array_Slice는 빈 배열을 반환합니다. 즉, 배열의 시간에 관계없이 가로 채는 길이는 0이므로 요소가 반환되지 않습니다.
예:
$arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, 0);
print_r($result);
산출:
Array
(
)
설명 : 길이를 0으로 지정하고 요소를 가로 채지 마십시오.
길이 매개 변수 | 반환 결과 | 설명 |
---|---|---|
널 | 오프셋에서 배열 끝까지 모든 요소 | 기본 동작, 나머지 모든 요소를 가로 채십시오 |
0 | 빈 배열 | 길이를 가로 채면 결과는 빈 배열입니다. |
배열의 꼬리를 가로 채려면 $ 길이 매개 변수를 생략하거나 명시 적으로 NULL을 통과하는 것이 좋습니다.
실수로 빈 배열을 반환하지 않으려면 $ 길이를 0 으로 설정하지 않도록주의하십시오.
동적으로 전달 된 매개 변수의 경우, 결과에 영향을 미치기 위해 0을 통과하지 않도록 유형 판단을하십시오.
$arr = ['a' => 1, 'b' => 2, 'c' => 3];
$result = array_slice($arr, 1, NULL, true);
print_r($result);
산출:
Array
(
[b] => 2
[c] => 3
)
여기에서 NULL은 남은 모든 요소를 가로 채고 원래 키 이름을 유지하기 위해 전달됩니다.