Menyaring data array berdasarkan kriteria tertentu adalah tugas sehari-hari: membuang nilai kosong dari input, mengambil hanya produk yang tersedia, atau memfilter angka genap. Artikel ini membahas cara menyaring array dengan array_filter di PHP.
Menghapus Nilai Kosong
<?php $data = ["Apel", "", "Mangga", null, "Jeruk", "0"]; print_r(array_filter($data)); // Array ( [0] => Apel [2] => Mangga [4] => Jeruk ) ?>
Tanpa callback, array_filter() membuang semua nilai yang dianggap kosong ("", 0, null, false).
Contoh Kasus: Menyaring Produk yang Tersedia
<?php
$produk = [
["nama" => "Kopi", "stok" => 5],
["nama" => "Teh", "stok" => 0],
["nama" => "Gula", "stok" => 3],
];
$tersedia = array_filter($produk, fn($p) => $p["stok"] > 0);
// hanya Kopi dan Gula
?>
Memfilter Berdasarkan Kunci
<?php $data = ["nama" => "Budi", "_token" => "xyz", "umur" => 25]; $bersih = array_filter($data, fn($k) => $k[0] !== "_", ARRAY_FILTER_USE_KEY); // buang kunci yang diawali underscore ?>
Kesalahan Umum
array_filter()mempertahankan kunci asli. Bungkus denganarray_values()bila butuh indeks berurutan.- Filter tanpa callback ikut membuang angka
0yang mungkin valid.
Kesimpulan
Gunakan array_filter() tanpa callback untuk membersihkan nilai kosong, atau dengan callback untuk menyaring berdasarkan kondisi. Gunakan ARRAY_FILTER_USE_KEY untuk memfilter berdasarkan kunci.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

