개발.이산이다

array_chunk

이산이다 2025. 12. 10. 05:25

1. PHP array_chunk 함수 설명

array_chunk() 함수는 배열을 일정한 크기(chunk)로 나누어 2차원 배열로 반환합니다.
필요 시 키를 유지(preserve keys) 여부도 설정할 수 있습니다.

📌 함수 원형

 
array_chunk(array $array, int $length, bool $preserve_keys = false): array

✔ 주요 기능

  • 배열을 $length 크기만큼 나누어 나머지는 마지막 그룹으로 구성.
  • $preserve_keys를 true로 하면 원본 배열의 key를 유지한다.

2. PHP array_chunk 샘플 코드

 
<?php
$data = ['a', 'b', 'c', 'd', 'e', 'f'];

$result = array_chunk($data, 2);

print_r($result);
?>

3. 샘플코드 이용 방법 및 Output 설명

✔ 실행 방법

  • PHP 파일로 저장 후 실행 → PHP CLI 또는 웹서버 통해 실행

✔ Output

 
Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [0] => e [1] => f ) )

4. VB.NET 유사 기능 — 사용자 정의 함수 구현

VB.NET에는 PHP array_chunk와 동일한 내장 함수가 없어 사용자 정의 함수를 만들어야 합니다.


✔ VB.NET 함수 설명

이 함수는 배열을 지정된 크기로 나누어 List(Of T()) 형태로 반환합니다.


✔ VB.NET 샘플 코드

 
Public Function ArrayChunk(Of T)(data As T(), chunkSize As Integer) As List(Of T())
    Dim result As New List(Of T())()

    For i As Integer = 0 To data.Length - 1 Step chunkSize
        Dim size As Integer = Math.Min(chunkSize, data.Length - i)
        Dim chunk(size - 1) As T
        Array.Copy(data, i, chunk, 0, size)
        result.Add(chunk)
    Next

    Return result
End Function

' 사용 예
Dim arr = {"a", "b", "c", "d", "e", "f"}
Dim chunks = ArrayChunk(arr, 2)

For Each c In chunks
    Console.WriteLine(String.Join(",", c))
Next

✔ Output

 
a,b c,d e,f

5. C# 유사 기능 — 사용자 정의 함수 구현


✔ C# 함수 설명

C#에도 기본 제공 함수는 없어 직접 구현해야 합니다.


✔ C# 샘플 코드

 
public static List<T[]> ArrayChunk<T>(T[] data, int chunkSize)
{
    List<T[]> result = new List<T[]>();

    for (int i = 0; i < data.Length; i += chunkSize)
    {
        int size = Math.Min(chunkSize, data.Length - i);
        T[] chunk = new T[size];
        Array.Copy(data, i, chunk, 0, size);
        result.Add(chunk);
    }

    return result;
}

// 사용 예
var arr = new[] { "a", "b", "c", "d", "e", "f" };
var chunks = ArrayChunk(arr, 2);

foreach (var c in chunks)
{
    Console.WriteLine(string.Join(",", c));
}

✔ Output

 
a,b c,d e,f

6. Python 유사 기능 — more_itertools.chunked 또는 슬라이싱 사용

Python 기본 라이브러리에는 chunk 함수가 없지만 구현은 매우 간단합니다.


✔ Python 설명

아래는 리스트를 지정 크기로 나눠 리스트의 리스트로 반환합니다.


✔ Python 샘플 코드

 
def array_chunk(data, size):
    return [data[i:i+size] for i in range(0, len(data), size)]

arr = ["a", "b", "c", "d", "e", "f"]
chunks = array_chunk(arr, 2)

for chunk in chunks:
    print(chunk)

✔ Output

 
['a', 'b'] ['c', 'd'] ['e', 'f']

7. JavaScript 유사 기능 — 사용자 정의 구현


✔ JavaScript 설명

JS에서도 Array.prototype에 chunk 기능이 없어 구현해야 합니다.


✔ JavaScript 샘플 코드

 
function arrayChunk(data, size) {
    let result = [];
    for (let i = 0; i < data.length; i += size) {
        result.push(data.slice(i, i + size));
    }
    return result;
}

const arr = ["a", "b", "c", "d", "e", "f"];
const chunks = arrayChunk(arr, 2);

console.log(chunks);

✔ Output

 
[ [ 'a', 'b' ], [ 'c', 'd' ], [ 'e', 'f' ] ]

'개발.이산이다' 카테고리의 다른 글

in_array  (0) 2025.12.12
array_fill  (0) 2025.12.11
date_diff  (0) 2025.12.10
array_diff_ukey  (0) 2025.12.09
GMT+9 기준으로 현재 날짜 구하기  (0) 2025.09.28