PHP에서 배열에 키(key)나 값(value)가 존재하는지 확인하는 방법은 목적에 따라 함수가 다릅니다. 가장 많이 쓰이는 경우별로 정리 합니다.
1️⃣ 배열에 키(key) 가 있는지 체크
✅ array_key_exists()
값이 null이어도 키가 존재하면 true
$arr = [
'name' => 'kim',
'age' => null
];
var_dump(array_key_exists('name', $arr)); // true
var_dump(array_key_exists('age', $arr)); // true
var_dump(array_key_exists('email', $arr)); // false
✅ isset()
키가 존재하고 값이 null이 아닐 때만 true
var_dump(isset($arr['name'])); // true
var_dump(isset($arr['age'])); // false (null이라서)
👉 차이 요약
함수. 키존재. 값이null
array_key_exists. ✔ ✔
isset. ✔ ✖
2️⃣ 배열에 값(value) 이 있는지 체크
✅ in_array()
$arr = ['apple', 'banana', 'orange'];
var_dump(in_array('banana', $arr)); // true
var_dump(in_array('grape', $arr)); // false
🔒 타입까지 엄격하게 비교 (추천)
$arr = [1, '1', 2];
var_dump(in_array(1, $arr, true)); // true
var_dump(in_array('1', $arr, true)); // true
var_dump(in_array(3, $arr, true)); // false
3️⃣ 다차원 배열에서 값 존재 여부간단한 방법 (평탄화)
$arr = [
['id' => 1, 'name' => 'kim'],
['id' => 2, 'name' => 'lee']
];
$names = array_column($arr, 'name');
var_dump(in_array('kim', $names)); // true
4️⃣ 특정 키 + 값 조합 체크
foreach ($arr as $item) {
if (isset($item['id']) && $item['id'] === 2) {
echo '찾음';
}
}
🔑 실무에서 자주 쓰는 정리
키만 체크 → array_key_exists()
null 제외 키 체크 → isset()
값 존재 체크 → in_array()
타입까지 정확히 → in_array($v, $arr, true)