PHP에서 Array_Slice 함수는 배열의 지정된 부분을 가로채는 매우 실용적인 도구입니다. 기능 서명은 다음과 같습니다.
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
그중에서도 $ preserve_keys 매개 변수는 원래 배열의 키 이름을 유지할지 여부를 제어하는 데 사용됩니다. 이 매개 변수의 기능은 간단 해 보이지만 실제로 사용하면 많은 사람들이 실제로 키 이름을 유지하는지 의문을 가지고 있습니다. 이 기사는 $ preserve_keys 매개 변수의 동작을 자세히 설명하고 코드 예제와 함께 설명합니다.
Array_Slice는 Array $ 배열 에서 데이터 조각을 가로 채겠습니다. 기본적으로 (즉, $ preserve_keys 는 false ), 반환 된 배열은 다시 표시됩니다. 즉, 키 이름은 0부터 시작하는 숫자 색인으로 재설정됩니다.
$ preserve_keys가 true 로 설정되면 함수는 원래 배열의 키 이름을 유지하려고합니다. 키 이름의 의미를 보존하기 때문에 연관 배열을 다룰 때 매우 중요합니다.
코드를 사용하여 다음을 설명합시다.
<?php
$array = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry',
5 => 'date',
6 => 'elderberry',
];
// 기본 동작 preserve_keys = false
$slice1 = array_slice($array, 1, 3);
print_r($slice1);
/*
산출:
Array
(
[0] => banana
[1] => cherry
[2] => date
)
*/
// preserve_keys = true
$slice2 = array_slice($array, 1, 3, true);
print_r($slice2);
/*
산출:
Array
(
[b] => banana
[c] => cherry
[5] => date
)
*/
?>
위의 코드에서 다음을 볼 수 있습니다.
$ preserve_keys가 false 일 때, 반환 된 배열 키 이름은 숫자 인덱스 (0, 1, 2)로 재설정됩니다.
$ preserve_keys 가 true 일 때, 반환 배열은 원래 키 이름 'b' , 'c' 및 5를 유지합니다.
배열이 인덱스 배열 (숫자 키)이고 $ preserve_keys 가 false 인 경우 리턴 된 배열 키 이름이 재 배열됩니다.
연관 배열 (문자열 키) 인 경우 $ preserve_keys가 false 인 경우에도 키 이름은 숫자 인덱스로 대체되어 키 이름이 손실됩니다.
$ preserve_keys 가 true 일 때, 반환 된 배열 키 이름은 동일하게 유지되지만 후속 작업 에이 배열을 사용하는 경우 키 이름의 무결성에주의를 기울여야합니다.
공식 매뉴얼의 Array_Slice 설명 : https://gitbox.net/manual/en/function.array-slice.php
도메인 이름은 여기에서 gitbox.net 으로 대체되며 자세한 내용은 방문 할 수 있습니다.