Menu

PHP array_column(): Mengambil Satu Kolom dari Baris Data

array_column($rows, 'email') mengembalikan field email dari setiap baris sebagai array datar. Pelajari argumen index key, mengindeks ulang baris berdasarkan id, memakainya dengan objek, dan mencari baris dengan array_search.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

array_column($rows, $column) mengembalikan nilai $column dari setiap baris dalam sebuah daftar baris. Fungsi ini mengubah tabel data menjadi array datar berisi satu field, dan itulah yang kamu butuhkan sebelum memakai implode, in_array, array_sum, atau array_search.

Baris datanya bisa berasal dari mana saja: respons JSON yang sudah di-decode, file CSV, atau query database yang mengembalikan array berisi array asosiatif.

Pakai index key untuk membuat pasangan key value

Argumen ketiga menyebutkan field yang nilainya menjadi key dari setiap hasil. array_column($users, 'name', 'id') adalah cara biasa untuk membuat tabel pencarian dari id ke nama, misalnya untuk daftar <select>.

Kalau dua baris punya nilai index yang sama, baris yang belakangan menimpa baris sebelumnya.

Mengindeks baris lengkap berdasarkan id dengan null

Berikan null sebagai kolom untuk menyimpan setiap baris secara utuh, dengan key baru dari field index. Mencari baris berdasarkan id jadi cukup dengan akses key langsung, tanpa loop.

Buat indeksnya sekali, dan setiap pencarian sesudahnya langsung dapat hasil. Ini penting saat kamu mencari banyak id di dalam loop.

Mencari baris dengan array_column dan array_search

Untuk mencari baris mana yang punya nilai tertentu, cari di kolomnya lalu pakai posisi yang dikembalikan. Periksa hasilnya dengan !== false, karena kecocokan di baris pertama mengembalikan 0.

Cara ini mengandalkan $users yang punya key 0, 1, 2, karena array_column mengembalikan sebuah list. Kalau array-nya sudah difilter dan ada key yang bolong, panggil array_values($users) dulu. Halaman array_search membahas jebakan false versus 0 secara rinci.

Menjumlahkan, menghitung, atau merata-ratakan kolom

array_column cocok dipasangkan dengan fungsi matematika: ambil field-nya, lalu jumlahkan.

Untuk nilai yang dihitung dari beberapa field, seperti jumlah barang dikali harga, alat yang tepat adalah array_map, seperti di baris terakhir.

array_column dengan objek

Pada daftar objek, array_column membaca property public. Property private dan protected tidak terlihat olehnya.

Panggilan kedua mengembalikan array kosong: password bersifat private, jadi setiap objek dilewati.

Baris tanpa field tersebut dilewati

array_column tidak mengisi nilai pengganti untuk baris yang tidak punya field itu. Hasilnya bisa lebih pendek daripada input, sehingga posisinya tidak lagi cocok dengan barisnya.

Hasil pertama berisi dua nomor telepon tanpa petunjuk bahwa Bob tidak punya nomor. Dengan nama sebagai index key, kamu bisa melihat nomor siapa milik siapa. Bentuk ini lebih aman setiap kali ada baris yang mungkin tidak punya field tersebut.

Pertanyaan yang sering diajukan

Apa fungsi array_column di PHP?

Fungsi ini menerima daftar baris (array atau objek) lalu mengembalikan nilai satu field dari setiap baris: array_column($users, 'email') menghasilkan array datar berisi email. Baris yang tidak punya field itu dilewati.

Bagaimana cara membuat array key value dari baris data?

Berikan field untuk key sebagai argumen ketiga: array_column($users, 'name', 'id') mengembalikan [id => name, ...]. Berikan null sebagai argumen kedua, array_column($users, null, 'id'), untuk menyimpan baris lengkap yang diindeks berdasarkan id.

Apa yang dilakukan array_column kalau sebuah baris tidak punya field itu?

Baris itu dilewati, jadi array_column($people, 'phone') bisa mengembalikan nilai lebih sedikit daripada jumlah barisnya dan posisinya tidak lagi cocok. Tambahkan index key, array_column($people, 'phone', 'name'), supaya terlihat dari baris mana setiap nilai berasal.

Apakah array_column bisa dipakai pada objek?

Bisa. Pada array berisi objek, fungsi ini membaca property public, dan juga property yang disediakan lewat __get kalau class-nya mendefinisikan __isset. Property private dan protected dilewati.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai