>  기사  >  백엔드 개발  >  PHP 배열 키-값 교환: 순차적 키-값 교환의 알고리즘 및 성능 분석

PHP 배열 키-값 교환: 순차적 키-값 교환의 알고리즘 및 성능 분석

WBOY
WBOY원래의
2024-05-03 13:15:01787검색

PHP 배열 키-값 교환에는 단순 키-값 교환과 순차적 키-값 교환이라는 두 가지 알고리즘이 있습니다. 전자는 배열을 순회하며 일대일 대응으로 키 값을 새 배열에 저장하는 반면, 후자는 array_values() 및 array_keys() 함수를 사용하여 키 값을 순서대로 교환합니다. 성능 테스트에 따르면 배열이 클 경우 순차적 키-값 스왑 알고리즘이 단순 키-값 스왑 알고리즘보다 훨씬 더 빠른 것으로 나타났습니다.

PHP 数组键值互换:按序键值互换的算法与性能分析

PHP 배열 키-값 교환: 순차 키-값 교환의 알고리즘 및 성능 분석

PHP에서 배열은 데이터를 저장하고 관리하는 정렬된 컬렉션입니다. 때로는 배열의 키 값을 교환해야 하는데, 이는 다음 알고리즘으로 달성할 수 있습니다:

간단한 키 값 교환 알고리즘

function swapArrayKeysValues(array $array): array
{
    $flippedArray = [];
    foreach ($array as $key => $value) {
        $flippedArray[$value] = $key;
    }
    return $flippedArray;
}

순차 키 값 교환 알고리즘

배열 키 값 값을 교환하기 위해 다음 알고리즘을 사용할 수 있습니다.

function orderedSwapArrayKeysValues(array $array): array
{
    $values = array_values($array);
    $keys = array_keys($array);
    return array_combine($values, $keys);
}

성능 분석

두 알고리즘의 성능을 비교하기 위해 우리는 10,000개 요소의 배열을 벤치마킹했습니다.

$array = range(1, 10000);

// 简单键值互换
$start = microtime(true);
$result = swapArrayKeysValues($array);
$end = microtime(true);
echo "简单键值互换耗时:" . ($end - $start) . " 秒\n";

// 按序键值互换
$start = microtime(true);
$result = orderedSwapArrayKeysValues($array);
$end = microtime(true);
echo "按序键值互换耗时:" . ($end - $start) . " 秒\n";

출력:

简单键值互换耗时:0.034162014007568 秒
按序键值互换耗时:0.0016639256477356 秒

성능 분석은 다음을 보여줍니다. 순차적 키-값 교환 알고리즘은 단순 키-값 교환 알고리즘보다 훨씬 빠릅니다.

위 내용은 PHP 배열 키-값 교환: 순차적 키-값 교환의 알고리즘 및 성능 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.