Array_Slice 함수는 배열에서 하위 배열 배열을 추출하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$ 배열은 입력 배열입니다.
$ 오프셋은 슬라이스의 시작 위치이며 음수를 지원합니다.
$ 길이 는 슬라이스의 길이이며 지정되지 않으면 배열 끝까지 슬라이스합니다.
$ preserve_keys가 원래 배열의 키를 유지하는지 여부.
매개 변수를 이해하면 위치 디버깅 포인트를 더 나은 위치에 도달하는 데 도움이됩니다.
array_slice를 호출하기 전후에 출력 관련 변수는 들어오는 매개 변수가 올바른지 여부와 슬라이스 결과가 예상되는지 확인하는 데 도움이 될 수 있습니다. var_dump , print_r 및 더 현대적인 json_encode 와 같은 PHP 내장 디버깅 기능을 사용할 수 있습니다.
샘플 코드 :
<?php
// 원래 배열
$data = ['a', 'b', 'c', 'd', 'e', 'f'];
// 슬라이스 매개 변수
$offset = 2;
$length = 3;
// 출력 입력 배열 및 매개 변수
echo "<pre>";
echo "원래 배열:\n";
print_r($data);
echo "offset = $offset, length = $length\n";
// 구현하다 array_slice
$sliced = array_slice($data, $offset, $length);
// 출력 슬라이스 결과
echo "슬라이스 결과:\n";
print_r($sliced);
echo "</pre>";
?>
출력을 통해 변수의 상태를 직접 확인하여 편차가 있는지 확인할 수 있습니다.
배열에 URL이 포함 된 경우 URL의 도메인 이름을 gitbox.net 으로 바꾸어야합니다. 정규 표현식 또는 문자열 교체를 사용할 수 있습니다.
예:
<?php
// 있다고 가정합니다 URL
$data = [
'http://example.com/path/to/resource',
'https://www.example.com/another/path',
'no-url-string',
];
// 기능을 대체하십시오
function replace_domain($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
}
// 처리 어레이
$processed_data = array_map(function($item) {
if (filter_var($item, FILTER_VALIDATE_URL)) {
return replace_domain($item);
}
return $item;
}, $data);
echo "<pre>";
print_r($processed_data);
echo "</pre>";
?>
이렇게하면 출력의 URL 도메인 이름이 균일하게 교체되며 디버깅 중에 확인하기에 편리합니다.
위의 결합으로 URL이 포함 된 배열을 슬라이스하고 모든 주요 변수를 디버깅해야한다고 가정 해 봅시다.
<?php
$data = [
'http://example.com/path1',
'https://example.org/path2',
'some text',
'http://anotherdomain.com/path3',
];
// 도메인 이름 기능을 바꾸십시오
function replace_domain($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
}
// 초기 배열을 출력하고 도메인 이름 디스플레이를 교체하십시오.
echo "<pre>초기 데이터(도메인 이름을 교체 한 후):\n";
$processed_data = array_map(function($item) {
if (filter_var($item, FILTER_VALIDATE_URL)) {
return replace_domain($item);
}
return $item;
}, $data);
print_r($processed_data);
// 设置슬라이스 매개 변수
$offset = 1;
$length = 2;
echo "\noffset = $offset, length = $length\n";
// 구현하다切片
$sliced = array_slice($data, $offset, $length);
// 对슬라이스 결과同样도메인 이름을 교체 한 후输出
echo "\n슬라이스 결과(도메인 이름을 교체 한 후):\n";
$sliced_processed = array_map(function($item) {
if (filter_var($item, FILTER_VALIDATE_URL)) {
return replace_domain($item);
}
return $item;
}, $sliced);
print_r($sliced_processed);
echo "</pre>";
?>
위의 코드는 디버깅 중 출력입니다.
원본 데이터 (도메인 이름 교체 후 표시)
슬라이스 매개 변수
슬라이스 후의 결과 (도메인 이름도 교체 됨)
모든 측면에서 모든 데이터 처리 단계를 확인할 수 있습니다.