Bayangkan Anda menjadi petugas keamanan di sebuah acara. Anda memegang daftar tamu undangan, dan setiap kali ada orang datang, Anda mengecek apakah namanya ada di daftar. Dalam PHP, pekerjaan “mengecek apakah sebuah nilai ada di dalam daftar” ini dilakukan dengan in_array(). Artikel ini membahas cara memeriksa nilai ada dalam array di PHP.
Fungsi in_array()
<?php
$buah = ["Apel", "Mangga", "Jeruk"];
if (in_array("Mangga", $buah)) {
echo "Mangga tersedia";
}
?>
Contoh Kasus: Validasi Hak Akses Halaman
<?php
$peran_diizinkan = ["admin", "editor"];
$peran_user = $_SESSION["role"] ?? "";
if (in_array($peran_user, $peran_diizinkan)) {
echo "Selamat datang di halaman kelola artikel";
} else {
http_response_code(403);
exit("Akses ditolak");
}
?>
Menambah peran baru cukup dengan menambahkan satu elemen ke array, tanpa mengubah logika if.
Contoh Kasus: Mencegah Produk Ganda di Keranjang
<?php
$keranjang = [12, 45, 8];
$id_produk = 45;
if (in_array($id_produk, $keranjang)) {
echo "Produk sudah ada di keranjang";
} else {
$keranjang[] = $id_produk;
}
?>
Perbandingan Ketat (Tipe Data)
Secara bawaan in_array() membandingkan longgar sehingga "1" dianggap sama dengan 1, yang bisa menimbulkan bug halus. Gunakan parameter ketiga true saat tipe penting:
<?php $data = ["1", 2, 3]; var_dump(in_array(1, $data)); // true (longgar) var_dump(in_array(1, $data, true)); // false (ketat) ?>
Tips Performa untuk Data Besar
Untuk pengecekan berulang pada ribuan data, isset() pada array yang sudah di-array_flip() jauh lebih cepat:
<?php
$lookup = array_flip($daftar_besar);
if (isset($lookup[$nilai])) { /* ditemukan, sangat cepat */ }
?>
Kesimpulan
Gunakan in_array() untuk memeriksa keberadaan nilai. Tambahkan true saat tipe data penting, dan pertimbangkan array_flip() + isset() untuk data besar demi performa. Jangan tertukar dengan array_key_exists() yang mengecek kunci.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

