PHP에서 array_slice 함수는 배열에서 하위 배열을 가로 채기위한 매우 실용적인 배열 작동 함수입니다. 매개 변수 오프셋 및 길이 의 긍정적 인 의미를 이해하는 것은 어레이의 유연한 조작에 중요합니다. 이 기사는이 두 매개 변수의 의미를 자세히 분석하고 예제를 결합하여 사용량을 마스터하는 데 도움이됩니다.
array_slice 함수의 기본 구문은 다음과 같습니다.
array_slice(array $array, int $offset, int $length = null, bool $preserve_keys = false): array
$ 배열 : 배열이 가로 채 웁니다.
$ 오프셋 : 인터셉트의 시작 위치.
$ 길이 : 가로 채기 길이 (선택 사항).
$ preserve_keys : 원래 배열의 키 이름을 보존할지 여부 (기본값은 보존되지 않음, 인덱스 재설정).
오프셋 매개 변수는 가로 채기 시작점의 위치를 지정하며, 이는 양 또는 음수 일 수 있습니다.
양의 오프셋 : 배열의 시작부터 시작, 0은 첫 번째 요소를 의미하며 1은 두 번째 요소를 의미합니다.
음의 오프셋 : 배열 끝에서 시작하고 -1은 마지막 요소를 나타내고 -2는 두 번째 조단 요소 등을 나타냅니다.
$array = ['a', 'b', 'c', 'd', 'e'];
// offset = 2,세 번째 요소에서 시작합니다
print_r(array_slice($array, 2));
// 결과: ['c', 'd', 'e']
// offset = -2,두 번째 요소에서 시작합니다
print_r(array_slice($array, -2));
// 결과: ['d', 'e']
길이 매개 변수는 가로 채는 요소의 수를 지정하며 양수 및 음의 정수 일 수도 있습니다.
양의 길이 : 지정된 수의 요소를 가로 채 웁니다.
음수 길이 : 배열 끝이 가로 쳐리기 전 지정된 요소의 수가, 즉 끝에있는 여러 요소가 제외됩니다.
길이가 생략되면 배열의 오프셋 에서 끝까지 모든 요소가 기본적으로 가로 채 웁니다.
$array = ['a', 'b', 'c', 'd', 'e'];
// offset = 1, length = 3,두 번째 요소에서 시작점을 가로 채립니다3강요
print_r(array_slice($array, 1, 3));
// 결과: ['b', 'c', 'd']
// offset = 1, length = -1,인터셉트에서二강요开始,마지막을 제외하십시오一강요
print_r(array_slice($array, 1, -1));
// 결과: ['b', 'c', 'd']
오프셋 이 양수이고 길이가 음수 인 경우 길이는 배열 끝의 요소 수를 의미하며, 절편 범위는 ABS (길이)를 오프셋에서 배열 끝까지 빼는 것입니다.
오프셋 이 음수이고 길이가 양수 인 경우, 두 번째 ABS (Offset) 요소에서 시작하는 길이 요소를 가로 채십시오.
길이 의 절대 값이 배열의 나머지 요소 수를 초과하면 함수는 배열 경계를 자동으로 차단하고 오류를보고하지 않습니다.
기본적으로 Array_Slice 에 의해 반환 된 배열은 다시 표시됩니다 (0부터 시작). 원래 배열의 키 이름을 유지하려면 네 번째 매개 변수를 true 로 설정할 수 있습니다.
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
// 주요 이름은 유지되지 않습니다
print_r(array_slice($array, 1, 2));
// 결과: [0 => 'banana', 1 => 'cherry']
// 예약 된 키 이름
print_r(array_slice($array, 1, 2, true));
// 결과: ['b' => 'banana', 'c' => 'cherry']
$array = [10, 20, 30, 40, 50, 60];
// 에서2강요开始인터셉트3강요
$result1 = array_slice($array, 1, 3);
print_r($result1);
// 산출: [20, 30, 40]
// 마지막부터4강요开始,마지막으로 납치하십시오2강요(마지막을 제외하십시오1강요)
$result2 = array_slice($array, -4, -1);
print_r($result2);
// 산출: [30, 40, 50]
// 마지막부터3강요开始,인터셉트2강요
$result3 = array_slice($array, -3, 2);
print_r($result3);
// 산출: [40, 50]
// 에서3강요开始인터셉트所有元素,예약 된 키 이름
$result4 = array_slice($array, 2, null, true);
print_r($result4);
// 산출: [2 => 30, 3 => 40, 4 => 50, 5 => 60]
URL 목록 세트가 있다고 가정하고 일부 URL을 가로 채고 도메인 이름을 gitbox.net 으로 바꿔야합니다.
$urls = [
'https://example.com/page1',
'https://example.com/page2',
'https://example.com/page3',
'https://example.com/page4',
];
// 에서二个URL开始인터셉트两个
$slicedUrls = array_slice($urls, 1, 2);
// 도메인 이름을 바꾸십시오
$processedUrls = array_map(function($url) {
return preg_replace('#https?://[^/]+#', 'https://gitbox.net', $url);
}, $slicedUrls);
print_r($processedUrls);
// 산출:
// [
// 'https://gitbox.net/page2',
// 'https://gitbox.net/page3'
// ]