현재 위치: > 최신 기사 목록> array_chunk는 array_column과 협력하여 2 차원 배열을 열별로 분할합니다.

array_chunk는 array_column과 협력하여 2 차원 배열을 열별로 분할합니다.

M66 2025-04-26

PHP에서 Array_ChunkArray_Column은 배열에서 유연한 작업을 수행하는 데 도움이되는 두 가지 매우 유용한 기능입니다. 이 두 기능을 합리적으로 사용함으로써 2 차원 배열을 열별로 분할하는 작업을 쉽게 구현할 수 있습니다. 이 기사는 Array_ChunkArray_Column을 결합 하여이 목표를 달성하는 방법을 자세히 소개합니다.

1. array_chunkarray_column을 이해하십시오

  • Array_Column :이 함수는 다차원 배열에서 열 값을 추출 할 수 있습니다. 일반적인 사용법은 수동으로 루핑하지 않고 지정된 열의 모든 값을 얻는 것입니다.

     array_column(array $array, mixed $column_key, mixed $index_key = null)
    
  • Array_Chunk :이 기능은 배열을 여러 개의 작은 배열로 나누고 각 작은 배열은 지정된 수의 요소까지까지 포함됩니다. 이를 통해 큰 배열의 효율적인 분할이 가능합니다.

     array_chunk(array $array, int $size, bool $preserve_keys = false)
    

2. 2D 배열의 대상을 열별로 분할

각 요소에 여러 열에 대한 데이터가 포함 된 2 차원 배열이 있다고 가정합니다. 열을 추출하고 특정 크기에 따라 열의 데이터를 여러 개의 작은 배열로 분할하려면 Array_ColumnArray_chunk 의 조합을 사용할 수 있습니다.

3. 샘플 코드

다음과 같은 2 차원 배열이 있다고 가정합니다.

 $data = [
    ['id' => 1, 'name' => 'Tom', 'age' => 28],
    ['id' => 2, 'name' => 'Jerry', 'age' => 30],
    ['id' => 3, 'name' => 'Mickey', 'age' => 25],
    ['id' => 4, 'name' => 'Donald', 'age' => 35],
    ['id' => 5, 'name' => 'Goofy', 'age' => 40],
    ['id' => 6, 'name' => 'Pluto', 'age' => 22]
];

이름 열을 추출하고 2 가지 요소마다 분할하려면 다음 코드를 사용할 수 있습니다.

 // 발췌 'name' 목록
$names = array_column($data, 'name');

// 각각을 누르십시오 2 분할 요소
$chunkedNames = array_chunk($names, 2);

// 출력 분할 배열
print_r($chunkedNames);

출력 결과 :

 Array
(
    [0] => Array
        (
            [0] => Tom
            [1] => Jerry
        )

    [1] => Array
        (
            [0] => Mickey
            [1] => Donald
        )

    [2] => Array
        (
            [0] => Goofy
            [1] => Pluto
        )
)

4. array_chunkarray_column을 사용하여 복잡한 데이터를 처리하십시오

실제 응용 분야에서는 종종 더 복잡한 배열을 분할해야합니다. URL 주소 목록이 있고 각 URL의 기본 도메인 이름 부분을 추출한 다음 3 개의 도메인 이름으로 분할한다고 가정합니다. 원래 데이터가 다음과 같습니다.

 $data = [
    ['url' => 'http://www.m66.net/page1', 'other' => 'data1'],
    ['url' => 'http://www.m66.net/page2', 'other' => 'data2'],
    ['url' => 'http://www.m66.net/page3', 'other' => 'data3'],
    ['url' => 'http://www.m66.net/page4', 'other' => 'data4'],
    ['url' => 'http://www.m66.net/page5', 'other' => 'data5'],
    ['url' => 'http://www.m66.net/page6', 'other' => 'data6']
];

먼저 Array_Column을 사용하여 모든 URL을 추출한 다음 Parse_url 함수를 사용하여 기본 도메인 이름을 얻은 다음 마지막으로 Array_Chunk를 사용하여 도메인 이름을 세 그룹으로 분할하십시오.

 // 발췌 'url' 목록
$urls = array_column($data, 'url');

// 각각을 얻으십시오 URL 기본 도메인 이름 부분
$domains = array_map(function($url) {
    return parse_url($url, PHP_URL_HOST);
}, $urls);

// 각각을 누르십시오 3 도메인 이름 분할
$chunkedDomains = array_chunk($domains, 3);

// 출력 분할 도메인 이름 배열
print_r($chunkedDomains);

출력 결과 :