php에서 array_chunk () 는 매우 일반적인 배열 기능입니다. 배열을 여러 개의 작은 배열로 나눌 수 있으며 각 작은 배열의 요소 수는 사용자가 지정합니다. 그러나 다차원 배열의 경우 array_chunk ()는 기본적으로 중첩 어레이를 재귀 적으로 분할하지 않습니다. 가장 바깥 쪽 배열을 전달 된 요소 수로 분할합니다.
Array_Chunk () 의 구문은 매우 간단하며 다음 매개 변수를 수용합니다.
array_chunk(array $array, int $length, bool $preserve_keys = false): array
$ 배열 : 분할 해야하는 배열.
$ 길이 : 각 작은 배열에 포함 된 요소 수에 포함됩니다.
$ preserve_keys : 원래 배열의 키 이름을 보존할지 여부. 기본값은 False 이고 키 이름은 다시 표시됩니다.
예를 들어, 다음 코드는 1 차원 배열을 여러 개의 작은 배열로 분할합니다.
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$result = array_chunk($array, 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
)
)
위에서 볼 수 있듯이 Array_chunk () 는 $ 배열 배열을 3 개의 작은 배열로 나눕니다. 각 작은 배열은 최대 3 개의 요소를 포함합니다.
배열이 다차원 인 경우, array_chunk () 의 기본 동작은 그 중첩 어레이를 재귀 적으로 처리하지 않고 가장 바깥 쪽 배열 만 분할됩니다. 다차원 배열을 분할하려면 array_chunk () 가이 목표를 직접 달성 할 수 없습니다.
다음과 같은 2 차원 배열이 있다고 가정합니다.
$array = [
['apple', 'banana', 'cherry'],
['dog', 'elephant', 'fox'],
['grape', 'honeydew', 'kiwi']
];
Array_Chunk ()를 사용 하여이 2 차원 배열을 분할하는 경우 :
$result = array_chunk($array, 2);
print_r($result);
출력은 다음과 같습니다.
Array
(
[0] => Array
(
[0] => Array
(
[0] => apple
[1] => banana
[2] => cherry
)
[1] => Array
(
[0] => dog
[1] => elephant
[2] => fox
)
)
[1] => Array
(
[0] => Array
(
[0] => grape
[1] => honeydew
[2] => kiwi
)
)
)
위에서 볼 수 있듯이 Array_Chunk ()가 2 차원 배열을 분할하면 중첩 어레이를 더 이상 분리하지 않고 대신 가장 작은 배열을 두 개의 작은 어레이로 나눕니다. 각 작은 배열에는 여전히 완전한 서브 어레이가 포함되어 있습니다.
다차원 배열의 재귀 분할을 구현하려면 사용자 정의 재귀 함수를 통해 Array_chunk () 의 동작을 시뮬레이션 할 수 있습니다. 이렇게하면 배열을 가로 지르고 array_chunk ()을 재귀 적으로 호출하여 중첩 어레이를 분할 할 수 있습니다.
다차원 배열을 재귀 적으로 분할하는 예는 다음과 같습니다.
function recursive_array_chunk($array, $length) {
$result = [];
foreach ($array as $key => $value) {
// 값이 배열 인 경우,재귀 분할
if (is_array($value)) {
$result[$key] = recursive_array_chunk($value, $length);
} else {
$result[] = $value;
}
}
return array_chunk($result, $length);
}
$array = [
['apple', 'banana', 'cherry'],
['dog', 'elephant', 'fox'],
['grape', 'honeydew', 'kiwi']
];
$result = recursive_array_chunk($array, 2);
print_r($result);
recursive_array_chunk () 함수는 각 층을 다차원 배열로 재귀 적으로 처리하여 다차원 배열의 분할을 실현합니다. 결국 중첩 어레이도 올바르게 분할됩니다.
Array_Chunk () 기본값은 다차 차원 어레이를 분할하여 가장 바깥 쪽 배열 만 처리하며 중첩 어레이는 재귀 적으로 처리되지 않습니다.
다차원 배열을 재귀 적으로 분할하려면 구현하려면 사용자 정의 기능이 필요합니다.
배열은 재귀를 통해 레이어별로 분할되어 다차원 배열의 중첩 어레이도 분할 될 수 있습니다.
이 기사가 다차원 배열에서 Array_chunk () 의 적용을 이해하는 데 도움이되기를 바랍니다. 다른 질문이 있거나 더 심층 분석이 필요한 경우 웹 사이트를 방문하십시오!