Berbeda dengan in_array() yang memeriksa nilai, terkadang kita perlu memastikan sebuah kunci ada dalam array asosiatif — misalnya memeriksa apakah data konfigurasi tertentu tersedia. Artikel ini membahas cara memeriksa kunci ada dalam array di PHP.
Fungsi array_key_exists()
<?php
$user = ["nama" => "Budi", "email" => null];
if (array_key_exists("email", $user)) {
echo "Kunci email ada";
}
?>
Perbedaan Penting dengan isset()
Inilah jebakan yang sering menjebak: isset() mengembalikan false jika nilainya null, sedangkan array_key_exists() tetap true selama kuncinya ada.
<?php
$user = ["email" => null];
var_dump(isset($user["email"])); // false (karena null)
var_dump(array_key_exists("email", $user)); // true (kunci memang ada)
?>
Contoh Kasus: Membaca Konfigurasi dengan Default
<?php
$config = ["timeout" => 0, "debug" => false];
$timeout = array_key_exists("timeout", $config) ? $config["timeout"] : 30;
echo $timeout; // 0 (nilai valid, tidak diganti default)
?>
Di sini isset() akan keliru mengganti 0 dengan default, sedangkan array_key_exists() tetap benar.
Kesimpulan
Gunakan array_key_exists() saat perlu memastikan sebuah kunci ada, bahkan jika nilainya null, 0, atau false. Untuk sekadar cek nilai yang benar-benar terisi, isset() lebih ringkas.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

