찾다
백엔드 개발PHP 튜토리얼PHP 배열 키-값 교환: 성능을 최적화하는 방법
PHP 배열 키-값 교환: 성능을 최적화하는 방법May 05, 2024 am 10:12 AM
php키 값 쌍어레이 최적화

PHP 배열 키-값 교환 성능을 최적화하는 방법: 순진한 방법: 배열을 순회하고 키-값 쌍을 반대로 바꾸는 것은 비효율적입니다. 최적화 방법: 연관 배열을 허용하고 교환된 키 값이 있는 새 배열을 반환하는 array_flip() 함수를 사용하여 시간 복잡성을 크게 줄입니다.

PHP 数组键值互换:性能优化之道

PHP 배열 키-값 교환: 성능을 향상시키는 마법의 무기

머리말
PHP 배열을 다룰 때 키-값 교환 작업은 매우 일반적입니다. 그러나 순진한 교환 방법은 특히 대규모 배열을 처리할 때 비효율적일 수 있습니다. 이 기사에서는 PHP 배열에서 키 값을 교환하는 효율적인 방법을 살펴보고 실제 사례를 통해 그 이점을 보여줍니다.

성능 병목 현상
다음과 같은 순진한 키-값 교환 방법을 고려하세요.

function swapKeyValues($array) {
  $newArr = [];
  foreach ($array as $key => $value) {
    $newArr[$value] = $key;
  }
  return $newArr;
}

이 방법은 먼저 새 배열을 생성한 다음 원래 배열을 반복하여 각 키-값 쌍을 뒤집어 새 배열에 저장합니다. 작은 배열의 경우 이 접근 방식이 충분히 빠를 수 있습니다. 그러나 많은 수의 요소를 포함하는 대규모 배열의 경우 이 방법은 전체 배열을 반복적으로 순회해야 하기 때문에 비효율적입니다.

최적화 방법
성능을 최적화하기 위해 array_flip() 함수를 사용할 수 있습니다. 이 함수는 연관 배열을 입력으로 받아들이고 키가 교체된 새 배열을 반환합니다. 이 방법은 중복 순회를 방지하고 교환 작업의 시간 복잡성을 크게 줄입니다. array_flip() 函数。此函数接受一个关联数组作为输入,并返回一个交换键值的新数组。该方法避免了冗余遍历,大大减少了交换操作的时间复杂度。

function optimizedSwapKeyValues($array) {
  return array_flip($array);
}

实战案例
为了展示优化方法的优势,我们创建了一个包含 100 万个元素的大数组,并使用计时函数分别测量朴素方法和优化方法的执行时间。

// 生成大数组
$array = array_fill(0, 1000000, null);
for ($i = 0; $i < count($array); $i++) {
  $array[$i] = rand(0, PHP_INT_MAX);
}

// 测量朴素方法的执行时间
$startTime = microtime(true);
$result1 = swapKeyValues($array);
$time1 = microtime(true) - $startTime;

// 测量优化方法的执行时间
$startTime = microtime(true);
$result2 = optimizedSwapKeyValues($array);
$time2 = microtime(true) - $startTime;

// 打印结果
echo "朴素方法执行时间:" . $time1 . " 秒\n";
echo "优化方法执行时间:" . $time2 . " 秒\n";

结果
对于包含 100 万个元素的大数组,朴素方法和优化方法的执行时间分别为:

  • 朴素方法:3.15 秒
  • 优化方法:0.005 秒

优化方法比朴素方法快了近 630 倍!

结论
通过采用优化方法 array_flip()rrreee

🎜실용 사례🎜🎜최적화 방법의 장점을 보여주기 위해 100만 개의 요소가 포함된 대규모 배열을 만들고 타이밍 함수를 사용하여 순진 방법과 최적화 방법의 실행 시간을 각각 측정했습니다. 🎜rrreee🎜🎜Results🎜🎜1백만 개의 요소를 포함하는 대규모 배열의 경우 순진한 방법과 최적화된 방법의 실행 시간은 다음과 같습니다. 🎜
  • 순진한 방법: 3.15초
  • 최적화된 방법 : 0.005초
🎜최적화된 방법은 순진한 방법보다 거의 630배 빠릅니다! 🎜🎜🎜결론🎜🎜최적화 방법인 array_flip() 함수를 채택함으로써 PHP의 배열 키-값 교환 작업은 특히 대규모 배열을 처리할 때 성능을 크게 향상시킬 수 있습니다. 이는 PHP 애플리케이션을 최적화하고, 실행 시간을 단축하며, 더 나은 사용자 경험을 제공하는 데 필수적입니다. 🎜

위 내용은 PHP 배열 키-값 교환: 성능을 최적화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경