현재 위치: > 최신 기사 목록> Array_Chunk의 두 번째 매개 변수를 동적 크기로 설정하는 방법

Array_Chunk의 두 번째 매개 변수를 동적 크기로 설정하는 방법

M66 2025-04-25

PHP에서 array_chunk () 함수는 배열을 여러 개의 작은 배열로 분할하는 데 사용됩니다. Array_Chunk ()가 호출되면 두 번째 매개 변수는 각 작은 배열의 요소 수를 결정합니다. 원래 배열의 길이에 따라이 두 번째 매개 변수를 동적으로 조정하려면 어떻게해야합니까?

이 기사는 배열의 길이에 따라 Array_chunk () 의 ​​두 번째 매개 변수를 동적으로 설정하는 방법을 소개합니다.

1. 기본 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
        )
)

2. 두 번째 매개 변수를 동적으로 설정합니다

때로는 배열의 길이에 따라 각 서브 어레이의 크기를 동적으로 결정하려고합니다. 예를 들어, 배열이 더 길면 각 서브 어레이가 더 많은 요소를 포함하기를 원합니다. 배열이 더 작은 경우, 각 하위 배열에는 더 적은 요소가 포함됩니다. 우리는 다음과 같은 방법으로 달성 할 수 있습니다.

 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로 설정합니다.

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 ()를 사용하여 페이징 기능을 시뮬레이션했습니다. 우리는 총 데이터량과 페이지 당 데이터 스트립 수를 기반으로 배열을 동적으로 나누고 각 페이지의 데이터를 반환합니다.

4. 요약

Array_Chunk () 의 ​​두 번째 매개 변수를 동적으로 설정하면 특히 특정 규칙을 기반으로 한 페이징 또는 분할 어레이를 처리 할 때 배열 분할을보다 유연하게 처리하는 데 도움이됩니다. 배열의 길이를 계산하고 조건에 따라 각 서브 어레이의 크기를 동적으로 조정함으로써 다른 요구를 쉽게 충족시킬 수 있습니다.