PHP 프로그래밍에서 Array_chunk ()는 큰 배열을 여러 개의 작은 배열 (블록)으로 분할하는 데 사용되는 매우 실용적인 기능입니다. 이 함수에는 두 개의 매개 변수가 있습니다. 첫 번째는 원래 배열이고 두 번째는 각 블록의 크기입니다. 이 기능은 매우 편리하지만 때로는 널 값이 포함 된 블록을 생성하는데, 이는 일부 응용 프로그램 시나리오에 이상적이지 않습니다. 그렇다면 배열을 분할 할 때 array_chunk ()가 빈 블록을 생성하는 방법은 무엇입니까? 아래에서는 몇 가지 일반적인 솔루션에 대해 설명합니다.
먼저 Array_Chunk () 함수의 기본 사용법을 살펴 보겠습니다. 간단한 배열이 있고 크기 3의 덩어리로 나누고 싶다고 가정합니다.
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$result = array_chunk($arr, 3);
print_r($result);
?>
출력 결과는 다음과 같습니다.
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
)
[2] => Array
(
[0] => 7
[1] => 8
[2] => 9
)
)
위의 코드는 원래 배열을 여러 크기의 크기 3 블록으로 성공적으로 분할합니다.
Array_Chunk ()는 지정된 블록 크기에 따라 배열을 분할합니다. 그러나 배열의 크기가 블록 크기로 완전히 나눌 수없는 경우, 마지막 블록은 지정된 수의 요소 수보다 적거나 빈 블록을 포함 할 수 있습니다. 빈 블록을 피하려면 다음 방법을 사용하여 최적화 할 수 있습니다.
빈 블록을 피하기 위해 Array_Filter () 함수를 사용하여 배열을 분할 후 빈 블록을 걸러 낼 수 있습니다. 다음은이를 달성하는 방법의 예입니다.
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8];
$chunked = array_chunk($arr, 3);
// 사용 array_filter() 빈 블록을 필터링하십시오
$chunked = array_filter($chunked, function($chunk) {
return !empty($chunk);
});
print_r($chunked);
?>
출력 결과는 다음과 같습니다.
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
)
[2] => Array
(
[0] => 7
[1] => 8
)
)
Array_Filter ()를 사용하면 빈 요소가 포함 된 블록을 제거하여 빈 블록이 나타나지 않도록 할 수 있습니다.
빈 블록을 필터링하지 않으려면 배열을 분할 할 때 사용되는 블록 크기 조정을 고려하십시오. 예를 들어, 배열을 분할하기 전에 배열의 길이에 따라 적절한 블록 크기를 동적으로 계산하여 마지막 블록이 비어 있지 않도록 할 수 있습니다. 예를 들어:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7];
$chunkSize = 3;
$remaining = count($arr) % $chunkSize;
if ($remaining > 0) {
$chunkSize = $remaining;
}
$chunked = array_chunk($arr, $chunkSize);
print_r($chunked);
?>
이러한 방식으로 코드는 빈 블록을 피하기 위해 배열의 길이에 따라 마지막 블록의 크기를 조정합니다.
이 기사의 예제를 통해 Array_Chunk () 함수가 배열을 분할 할 때 빈 블록을 생성 할 수 있다는 문제를 이해하고 두 가지 솔루션을 탐색합니다 : Array_Filter () 로 빈 블록을 필터링하거나 빈 블록의 생성을 피하기 위해 블록 크기를 동적으로 조정합니다. 다양한 요구에 따라 배열의 효과가 예상대로 적절한 솔루션을 선택할 수 있습니다.