찾다
백엔드 개발PHP 튜토리얼PHP array_key_exists() 배열 함수 사용에 대한 자세한 설명

이 글은 php array 함수 array_key_exists()에 대한 관련 지식과 in_array와의 성능 비교, isset와의 차이점 분석을 매우 자세하게 요약하고 소개합니다. 그것을 참조하십시오.

array_key_exists() 함수는 지정된 키가 배열에 있는지 확인합니다. 키가 있으면 true를 반환하고, 그렇지 않으면 false

array_key_exists(key,array);

key를 반환합니다. 키 이름
배열 지정: 필수. 입력 배열을 지정합니다

<?php
$a = array(&#39;a&#39;=>&#39;Dog&#39;,&#39;b&#39;=>&#39;Cat&#39;);
if(array_key_exists(&#39;a&#39;,$a)){
  echo &#39;Key exists!&#39;;
} else{
  echo &#39;Key does not exist!&#39;;
}
?>

출력: 키가 존재합니다!

array_key_exists가 in_array보다 빠른 이유는 무엇입니까?

array_key_exists와 in_array는 서로 다른 쿼리를 수행합니다. 그렇죠?
array_key_exists는 키 값이 있는지 확인하고
array_key_exists(a,arr)->if(isset(arr[a]))가 true

그리고 in_array는 순회해야 합니다. 값은 순회 후에만 루프에서 빠져나옵니다.

질문:
배열의 인덱스는 별도의 저장 단위를 가지며 최적화되어 있습니까? array_key_exists의 시간 복잡도는 o(1)이고 in_array는 o(n) ??

추가 답변:
복잡성의 관점에서 볼 때, 이것은

array_key_exists가 특정 키에 값이 있는지 확인하는 것입니다

in_array. 모르겠어, 짚어봐야 해

PHP에서 isset과 array_key_exists의 차이점

1. 배열 값에 대한 판단이 다릅니다. 값이 null이거나 '' 또는 false인 경우 isset은 false를 반환하고 array_key_exists는 true를 반환합니다.

2. 실행 효율성이 다릅니다. isset은 내장된 연산자이고, array_key_exists는 php 내장 함수이며, isset이 더 빠릅니다. PHP 함수 구현 원리 및 성능 분석

3을 참조하세요. isset을 사용하여 존재하지 않는 인덱스 배열 값에 액세스하면 E_NOTICE라는 PHP 오류 메시지가 발생하지 않습니다.

4.array_key_exists는 get_defined_vars를 호출하여 확인합니다. 배열 변수가 존재하는지 여부. isset이 사용되지 않음;

테스트 코드:

<?php
function
microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$test_arr[&#39;aa&#39;]=&#39;dd&#39;;
$test_arr[&#39;bb&#39;]=&#39;&#39;;
$test_arr[&#39;cc&#39;]=NULL;
$test_arr[&#39;dd&#39;]=false;
$test_arr= array(&#39;aa&#39;=>&#39;dd&#39;,&#39;bb&#39;=>&#39;&#39;,&#39;cc&#39;=>null,&#39;dd&#39;=>false);
echo "isset aa is ";var_dump(isset($test_arr[&#39;aa&#39;]));echo "n";
echo "isset bb is ";var_dump(isset($test_arr[&#39;bb&#39;]));echo "n";
echo "isset cc is ";var_dump(isset($test_arr[&#39;cc&#39;]));echo "n";
echo "isset dd is ";var_dump(isset($test_arr[&#39;cc&#39;]));echo "n";
echo "isset none is ";var_dump(isset($test_arr[&#39;none&#39;]));echo "n";
echo "key_exist aa is ";var_dump(array_key_exists(&#39;aa&#39;,$test_arr));echo "n";
echo "key_exist bb is ";var_dump(array_key_exists(&#39;bb&#39;,$test_arr));echo "n";
echo "key_exist cc is ";var_dump(array_key_exists(&#39;cc&#39;,$test_arr));echo "n";
echo "key_exist dd is ";var_dump(array_key_exists(&#39;dd&#39;,$test_arr));echo "n";
echo "key_exist none is ";var_dump(array_key_exists(&#39;none&#39;,$test_arr));echo "n";
$time_start = microtime_float();
for($i=0;$i<100;$i++){
isset($test_arr[&#39;aa&#39;]);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 100 is $timen";
for($i=0;$i<10000;$i++){
isset($test_arr[&#39;aa&#39;]);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 10000 is $timen";
for($i=0;$i<1000000;$i++){
isset($test_arr[&#39;aa&#39;]);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 1000000 is $timen";
//++++++++++++++++++++++++++++++
$time_start = microtime_float();
for($i=0;$i<100;$i++){
array_key_exists(&#39;aa&#39;,$test_arr);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "array_key_exists 100 is $timen";
for($i=0;$i<10000;$i++){
array_key_exists(&#39;aa&#39;,$test_arr);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "array_key_exists 10000 is $timen";
for($i=0;$i<1000000;$i++){
array_key_exists(&#39;aa&#39;,$test_arr);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "array_key_exists 1000000 is $timen";

위 내용은 PHP array_key_exists() 배열 함수 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

여전히 인기있는 것은 사용 편의성, 유연성 및 강력한 생태계입니다. 1) 사용 편의성과 간단한 구문은 초보자에게 첫 번째 선택입니다. 2) 웹 개발, HTTP 요청 및 데이터베이스와의 우수한 상호 작용과 밀접하게 통합되었습니다. 3) 거대한 생태계는 풍부한 도구와 라이브러리를 제공합니다. 4) 활성 커뮤니티와 오픈 소스 자연은 새로운 요구와 기술 동향에 맞게 조정됩니다.

PHP 및 Python : 유사점과 차이점을 탐구합니다PHP 및 Python : 유사점과 차이점을 탐구합니다Apr 19, 2025 am 12:21 AM

PHP와 Python은 웹 개발, 데이터 처리 및 자동화 작업에 널리 사용되는 고급 프로그래밍 언어입니다. 1.PHP는 종종 동적 웹 사이트 및 컨텐츠 관리 시스템을 구축하는 데 사용되며 Python은 종종 웹 프레임 워크 및 데이터 과학을 구축하는 데 사용됩니다. 2.PHP는 Echo를 사용하여 콘텐츠를 출력하고 Python은 인쇄를 사용합니다. 3. 객체 지향 프로그래밍을 지원하지만 구문과 키워드는 다릅니다. 4. PHP는 약한 유형 변환을 지원하는 반면, 파이썬은 더 엄격합니다. 5. PHP 성능 최적화에는 Opcache 및 비동기 프로그래밍 사용이 포함되며 Python은 Cprofile 및 비동기 프로그래밍을 사용합니다.

PHP와 Python : 다른 패러다임이 설명되었습니다PHP와 Python : 다른 패러다임이 설명되었습니다Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP와 Python : 그들의 역사에 깊은 다이빙PHP와 Python : 그들의 역사에 깊은 다이빙Apr 18, 2025 am 12:25 AM

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP와 Python 중에서 선택 : 가이드PHP와 Python 중에서 선택 : 가이드Apr 18, 2025 am 12:24 AM

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP 및 프레임 워크 : 언어 현대화PHP 및 프레임 워크 : 언어 현대화Apr 18, 2025 am 12:14 AM

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

PHP의 영향 : 웹 개발 및 그 이상PHP의 영향 : 웹 개발 및 그 이상Apr 18, 2025 am 12:10 AM

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?Apr 17, 2025 am 12:25 AM

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

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 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음