> 백엔드 개발 > PHP 튜토리얼 > 두 개의 플랫 인덱스 배열을 번갈아 효율적으로 병합하려면 어떻게 해야 합니까?

두 개의 플랫 인덱스 배열을 번갈아 효율적으로 병합하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-03 10:40:10
원래의
690명이 탐색했습니다.

How Can I Efficiently Merge Two Flat Indexed Arrays Alternately?

플랫 인덱스 배열을 교대로 병합

두 배열을 교대로 병합하여 값을 연결하는 대신 하나씩 결과에 삽입합니다. 데이터 처리 및 조작의 일반적인 요구 사항입니다. 이 경우 두 개의 평면 인덱스 배열 $a1과 $a2가 있으며 이를 새 배열 $newArray로 병합하여 값이 다음과 같이 인터리브되도록 하려고 합니다. [0, 3, 1, 4, 2 , 5].

제안된 대로 수동 루프를 사용하여 이를 달성할 수도 있지만 성능 이점을 제공하는 보다 효율적인 기본 접근 방식이 있습니다. 다음 코드는 미리 계산된 접근 방식을 보여줍니다.

$count = count($a1);
for ($i = 0; $i < $count; $i++) {
    $newArray[] = $a1[$i];
    $newArray[] = $a2[$i];
}
로그인 후 복사

이 코드에서는 먼저 $a1의 요소 수를 결정합니다($a1과 $a2의 크기가 동일하다고 가정). 그런 다음 루프를 사용하여 요소를 반복하고 이를 $newArray에 교대로 추가합니다.

아래 표시된 성능 벤치마킹을 통해 이 접근 방식의 효율성을 확인할 수 있습니다.

$a1 = array(0, 1, 2);
$a2 = array(3, 4, 5);

$start = microtime(TRUE);

for($t = 0; $t < 100000; $t++){
    $newArray = array();
    $count = count($a1);
    for ($i = 0; $i < $count; $i++){
        $newArray[] = $a1[$i];
        $newArray[] = $a2[$i];
    }
}
echo round(microtime(TRUE) - $start, 2); # 0.6
로그인 후 복사

비교 각 반복에서 배열 크기를 계산하는 접근 방식에 비해 이 사전 계산된 접근 방식은 상당한 성능을 제공합니다. 개선:

$a1 = array(0, 1, 2);
$a2 = array(3, 4, 5);

$start = microtime(TRUE);

for($t = 0; $t < 100000; $t++){
    $newArray = array();
    for ($i = 0; $i < count($a1); $i++){
        $newArray[] = $a1[$i];
        $newArray[] = $a2[$i];
    }
}
echo round(microtime(TRUE) - $start, 2); # 0.85
로그인 후 복사

벤치마킹은 성능에 대한 간략한 정보를 제공하지만 특정 성능 특성은 특정 데이터 및 환경에 따라 달라질 수 있다는 점에 유의하는 것이 중요합니다. 그럼에도 불구하고 이러한 사전 계산된 접근 방식은 플랫 인덱스 배열을 교대로 효율적으로 병합하기 위한 견고한 기반을 제공합니다.

위 내용은 두 개의 플랫 인덱스 배열을 번갈아 효율적으로 병합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿