플랫 인덱스 배열을 교대로 병합
두 배열을 교대로 병합하여 값을 연결하는 대신 하나씩 결과에 삽입합니다. 데이터 처리 및 조작의 일반적인 요구 사항입니다. 이 경우 두 개의 평면 인덱스 배열 $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!