현재 위치: > 최신 기사 목록> Array_Cunk를 사용하여 Array_Intersect와 협력하여 복제물을 찾으십시오

Array_Cunk를 사용하여 Array_Intersect와 협력하여 복제물을 찾으십시오

M66 2025-04-28

PHP에서 배열 작업은 매우 일반적인 작업입니다. 특히 데이터 처리에서 배열에서 중복을 찾는 것이 매우 일반적인 문제입니다. PHP는이 목표를 달성하는 데 도움이되는 여러 기능을 제공하며 Array_chunkArray_intersect는 두 가지 매우 유용한 기능입니다. 이 기사는이 두 기능을 사용하여 배열에서 복제물을 찾는 방법과 빅 데이터를 다룰 때주의를 기울여야 할 방법을 소개합니다.

1. array_chunk 함수 소개

Array_Chunk 함수는 큰 배열을 여러 개의 작은 배열로 나눕니다. 두 개의 매개 변수를 허용하고 첫 번째는 원래 배열이고 두 번째는 각 작은 배열의 크기입니다. 이 함수는 여러 개의 작은 배열이 포함 된 배열을 반환합니다.

 $input = range(1, 10); // 에서 A를 생성하십시오 1 도착하다 10 배열
$chunks = array_chunk($input, 3); // 배열을 각 포함 된 각각으로 나눕니다 3 요소의 하위 배열
print_r($chunks);

산출:

 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
        (
            [0] => 10
        )
)

Array_Chunk를 사용하면 큰 배열을 작은 배열로 나눌 수 있으며 경우에 따라 후속 작업이 더 효율적으로 만들어집니다.

2. Array_Intersect 기능 소개

Array_Intersect 함수는 두 배열에서 동일한 요소를 찾는 데 사용됩니다. 교차로가 포함 된 배열을 두 배열로 반환합니다.

 $array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$intersection = array_intersect($array1, $array2);
print_r($intersection);

산출:

 Array
(
    [2] => 3
    [3] => 4
    [4] => 5
)

3. array_chunkarray_intersect를 결합하여 복제물을 찾습니다

배열에서 복제물을 찾으려면 Array_Chunk를 사용하여 배열을 여러 개의 작은 조각으로 분할하고 Array_Intersect를 통해 다른 작은 조각들 사이에 중복 요소를 찾을 수 있습니다. 많은 양의 데이터가있는 배열이 있고 그 중복을 찾고 싶다고 가정 해 봅시다.

다음은 Array_ChunkArray_Intersect를 결합하여 복제물을 찾는 방법을 보여주는 간단한 예입니다.

 // 假设这是我们要处理배열
$array = [1, 2, 3, 4, 5, 3, 6, 7, 8, 9, 10, 3, 2];

// 배열을 작은 덩어리로 분할하십시오
$chunks = array_chunk($array, 3);

// 블록 사이의 중복을 찾으십시오
$duplicates = [];
for ($i = 0; $i < count($chunks); $i++) {
    for ($j = $i + 1; $j < count($chunks); $j++) {
        $intersection = array_intersect($chunks[$i], $chunks[$j]);
        if (!empty($intersection)) {
            $duplicates = array_merge($duplicates, $intersection);
        }
    }
}

// 출력 복제
$duplicates = array_unique($duplicates); // 무거운 곳으로 가십시오
print_r($duplicates);

산출:

 Array
(
    [0] => 3
    [1] => 2
)

4. 빅 데이터를 처리 할 때 주목해야 할 사항

작은 데이터 세트를 처리 할 때 Array_ChunkArray_Intersect 기능이 매우 효율적이지만 빅 데이터를 처리 할 때 다음 사항을 고려해야합니다.

  • 메모리 사용 : Array_Chunk는 배열을 여러 개의 작은 배열로 나누어 메모리 사용이 증가 할 수 있습니다. 데이터 세트가 매우 크면 모든 데이터를 메모리에 한 번에로드하는 대신 블록으로 데이터 블록을 처리하는 것을 고려하십시오.

  • 효율성 문제 : Array_Intersect는 호출 될 때마다 전체 배열을 반복 할 수 있으며 큰 데이터 세트의 경우 매우 느립니다. 해시 테이블과 같은보다 효율적인 데이터 구조를 사용하여 복제물을 찾는 것을 고려하십시오.

  • 배치 처리 : 매우 큰 데이터 세트의 경우 배치의 처리 배열이 전체 배열을 한 번에 처리하는 것보다 효율적입니다. 생성기를 사용하여 모든 데이터를 메모리에 한 번에로드하지 않도록 할 수 있습니다.

5. 요약

  • Array_Chunk를 사용하면 큰 배열을 작은 배열로 분할하여 데이터를보다 쉽게 ​​처리 할 수 ​​있습니다.

  • Array_Intersect를 사용하면 두 배열에서 중복 요소를 찾는 데 도움이됩니다.

  • 빅 데이터를 처리 할 때는 메모리 관리 및 효율성 문제에 특별한주의를 기울여야합니다. 배치로 데이터 처리를 고려하고보다 효율적인 데이터 구조를 사용하여 성능을 최적화 할 수 있습니다.

이 기사의 예제를 통해 Array_ChunkArray_Intersect를 사용하여 배열에서 복제물을 찾아 빅 데이터에 직면 할 때 코드의 성능을 향상시키기 위해 적절한 조치를 취하는 데 더 능숙 해지기를 바랍니다.