PHP에서 array_chunk () 함수는 배열을 여러 개의 작은 배열로 분할하는 데 사용됩니다. Array_Chunk ()가 호출되면 두 번째 매개 변수는 각 작은 배열의 요소 수를 결정합니다. 원래 배열의 길이에 따라이 두 번째 매개 변수를 동적으로 조정하려면 어떻게해야합니까?
이 기사는 배열의 길이에 따라 Array_chunk () 의 두 번째 매개 변수를 동적으로 설정하는 방법을 소개합니다.
Array_Chunk () 의 기본 구문은 다음과 같습니다.
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ 배열 : 입력 배열.
$ 크기 : 각 분할 배열의 크기.
$ preserve_keys : 원래 배열의 키를 보존할지 여부 (기본값은 false ).
예를 들어:
$array = [1, 2, 3, 4, 5, 6];
$chunked = array_chunk($array, 2);
print_r($chunked);
산출:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 3
[1] => 4
)
[2] => Array
(
[0] => 5
[1] => 6
)
)
때로는 배열의 길이에 따라 각 서브 어레이의 크기를 동적으로 결정하려고합니다. 예를 들어, 배열이 더 길면 각 서브 어레이가 더 많은 요소를 포함하기를 원합니다. 배열이 더 작은 경우, 각 하위 배열에는 더 적은 요소가 포함됩니다. 우리는 다음과 같은 방법으로 달성 할 수 있습니다.
function dynamicChunkSize($array) {
// 배열 길이를 얻으십시오
$length = count($array);
// 배열의 길이에 따라 청킹 크기를 설정합니다.,길이가 더 작다고 가정하십시오 10 시간 부서 2 조각,길이가 더 큽니다 10 시간 부서 3 조각
if ($length < 10) {
$size = 2;
} else {
$size = ceil($length / 3); // 如果数组길이가 더 큽니다 10,1/3로 나뉩니다
}
return $size;
}
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$size = dynamicChunkSize($array);
$chunked = array_chunk($array, $size);
print_r($chunked);
위의 예에서는 배열의 길이에 따라 각 서브 어레이의 크기를 동적으로 결정하는 함수 dynamicchunksize () 를 정의합니다. 예를 들어, 배열 길이가 10 미만인 경우 각 작은 배열의 크기를 2로 설정합니다. 배열 길이가 10보다 크면 각 작은 배열의 크기를 배열 길이의 1/3로 설정합니다.
array_chunk () 의 두 번째 매개 변수를 동적으로 조정하는 것은 특정 시나리오에 매우 적합합니다. 예를 들어 페이징에 대한 데이터를 표시 할 때 총 데이터 양을 기반으로 각 페이지에 표시된 데이터 수를 동적으로 계산할 수 있습니다. 페이지 매김의 예는 다음과 같습니다.
function getPaginationChunks($array, $totalItems, $itemsPerPage) {
$totalPages = ceil($totalItems / $itemsPerPage);
$chunks = [];
for ($i = 0; $i < $totalPages; $i++) {
$start = $i * $itemsPerPage;
$chunks[] = array_slice($array, $start, $itemsPerPage);
}
return $chunks;
}
$array = range(1, 100); // 이것이 포함된다고 가정합니다100요소 배열
$totalItems = count($array);
$itemsPerPage = 10;
$pagination = getPaginationChunks($array, $totalItems, $itemsPerPage);
print_r($pagination);
이 예에서는 array_slice ()를 사용하여 페이징 기능을 시뮬레이션했습니다. 우리는 총 데이터량과 페이지 당 데이터 스트립 수를 기반으로 배열을 동적으로 나누고 각 페이지의 데이터를 반환합니다.
Array_Chunk () 의 두 번째 매개 변수를 동적으로 설정하면 특히 특정 규칙을 기반으로 한 페이징 또는 분할 어레이를 처리 할 때 배열 분할을보다 유연하게 처리하는 데 도움이됩니다. 배열의 길이를 계산하고 조건에 따라 각 서브 어레이의 크기를 동적으로 조정함으로써 다른 요구를 쉽게 충족시킬 수 있습니다.