PHP Velho Oeste 2024

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

array_key_exists주어진 키와 인덱스가 배열에 존재하는지 확인

설명

bool array_key_exists ( mixed $key , array $search )

array_key_exists()는 주어진 key가 배열 안에서 설정되어 있으면 TRUE를 반환한다. key는 배열 인덱스로 사용할수 있는 어떤값이든 될수 있다.

인수

key

확인할 값.

search

확일할 키를 가진 배열.

반환값

성공 시 TRUE를, 실패 시 FALSE를 반환합니다.

변경점

버전 설명
5.3.0 객체에 대하여 작동하지 않습니다. 이 경우 property_exists()를 사용해야 합니다.

예제

Example #1 array_key_exists() 예제

<?php
$search_array 
= array('first' => 1'second' => 4);
if (
array_key_exists('first'$search_array)) {
    echo 
"The 'first' element is in the array";
}
?>

Note: PHP 4.0.6에서 이 함수의 이름은 key_exists()이다.

Example #2 array_key_exists()isset()

배열 키에 해당하는 값이 NULL일 때, isset()TRUE를 반환하지 않지만, array_key_exists()TRUE를 반환합니다.

<?php
$search_array 
= array('first' => null'second' => 4);

// false 반환
isset($search_array['first']);

// true 반환
array_key_exists('first'$search_array);
?>

참고

add a note add a note

User Contributed Notes 3 notes

up
10
Julian
1 year ago
When you want to check multiple array keys:

<?php

$array
= [];
$array['a'] = '';
$array['b'] = '';
$array['c'] = '';
$array['d'] = '';
$array['e'] = '';

// all given keys a,b,c exists in the supplied array
var_dump(array_keys_exists(['a','b','c'], $array)); // bool(true)

function array_keys_exists(array $keys, array $array): bool
{
   
$diff = array_diff_key(array_flip($keys), $array);
    return
count($diff) === 0;
}
up
4
Rumour
9 months ago
In PHP7+ to find if a value is set in a multidimensional array with a fixed number of dimensions, simply use the Null Coalescing Operator: ??

So for a three dimensional array where you are not sure about any of the keys actually existing

<?php

// instead of:
$exists = array_key_exists($key1, $arr) && array_key_exists($key2, $arr[$key1]) && array_key_exists($key3, $arr[$key1][$key2]) ;

// use:
$exists array_key_exists($key3, $arr[$key1][$key2]??[]) ;

?>
up
-39
manhon824 at gmail dot com
12 years ago
I took hours for me to debug, and I finally recognized that,

You have to reset the $array before using array_key_exists
reset($array);
array_key_exists($needle,$array);

Or you will get no reply.
To Top