Foreach digunakan untuk melakukan perulangan terhadap sebuah array. Foreach php hanya dapat digunakan untuk looping array dan object.
Syntax Foreach
foreach
($array as $key) {
//kode yang akan dieksekusi
}
forech dan endforach
foreach
($array as $value):
//kode yang akan dieksekusi
endforeach;
Contoh penggunaan Foreach PHP
Contoh penggunaan foreach pada sebuah program php native dapat dibuat sebagai berikut:
1. foreach array numerik
<?php $array = array(1, 2, 3); foreach ($array as $value) { echo $value."<br>"; } ?>
Output
1
2
3
2. foreach array assosiatif
<?php $array = array( 'web' => 'indonetsource', 'deskripsi' => 'Tutorial Belajar Pemrograman', 'url' => 'https://www.indonetsource.com' ); foreach ($array as $value) { echo $value."<br>"; } ?>
Output
indonetsource
Tutorial Belajar Pemrograman
https://www.indonetsource.com
3. Foreach dalam foreach
Foreach sebagai salah satu syntax untuk looping array memiliki fasilitas untuk melakukan perulangan terhadap array 1 dimensi, 2 dimensi ataupun 3 dimensi.
Pada contoh 1 dan 2 penggunaan foreach tergolong untuk looping array 1 dimensi. Penerapan foreach untuk looping array 2 dimensi dapat dilihat pada contoh script di bawah ini:
<?php $array = array( array( 'url' => 'ins.com', 'respone' => 'true', ), array( 'url' => 'https://www.indonetsource.com', 'respone' =>'true' ) ); foreach ($array as $value) { foreach ($value as $value1) { echo $value1."<br>"; } } ?>
Output
ins.com
true
https://www.indonetsource.com
true
4. Foreach dan endforeach
<?php $array = array('Ali','Beny','Charlie','Doni','Frans'); foreach ($array as $value): echo $value."<br>"; endforeach; ?>
output
Ali
Beny
Charlie
Doni
Frans
Foreach PHP dan database MySQL
Kita telah bisa dan paham penggunaan perulangan foreach di dalam script php. Namun dalam praktiknya perulangan biasanya menampilkan data tabel dari sebuah database.
Pada php native perulangan data arrayy sering menggunakan while. Namun selain menggunakan while kita juga bisa menggukan foreach. Seperti contoh di bawah ini:
Contoh Foreach PHP MySQL
Penerapan foreach dalam menampilkan database MySQL ini menggunakan database tabungan siswa dan tabel yang ditampilkan adalah tabel siswa yang terdiri atas data berikut:
mysql> select * from siswa; +------------+---------------+---------------+---------------+ | nisn | nama | jenis_kelamin | alamat | +------------+---------------+---------------+---------------+ | 0091125301 | Alam Anugrah | Laki-laki | Jl.Pertiwi 22 | | 0091125302 | Beni Kurniadi | Laki-laki | Jl.Pramuka 20 | | 0091125303 | Cici Syafitri | Perempuan | Jl.Merpati 25 | | 0091125304 | Dodi ananda | Laki-laki | Jl.Garuda 17 | | 0091125305 | Ema Putri | Perempuan | Jl.Mawar 70 | +------------+---------------+---------------+---------------+
Silahkan teman-teman lengkapi pembuatan contoh ini dengan mengisikan data dan membuat tabel siswa seperti tabel di atas. Atau teman-teman juga dapat menggunakan tabel/database lain yang sudah dimiliki.
Selanjutnya untuk menampilkan data mysql dengan php kita membutuhkan file koneksi. Buatlah koneksi terlebih dahulu.
koneksi.php
<?php $hostname = "localhost"; $database = "tabungan_siswa"; $username = "root"; $password = ""; $kon = mysqli_connect($hostname, $username, $password, $database); // script cek koneksi if (!$kon) { die("Koneksi Tidak Berhasil: " . mysqli_connect_error()); }
dari script di atas dapat dilihat bahwa kita sudah menggunakan mysqli dalam menjalankan fungsi mysql. Hal ini dikarenakan mysql yang digunakan sudah versi terbaru. selanjutnya perintah mysql yang akan kita buat tetap menggunakan mysqli. Teman-teman dapat menyesuaikan dengan menginstal MySQL versi => 4.1. 13.
Setelah teman-teman memiliki MySQL versi MysSQLi silahkan selesaikan script untuk menampilkan data MySQL dengan perulangan foreach seperti script di bawah ini:
siswa.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h3>Data Siswa</h3> <?php include 'koneksi.php'; ?> <table border="1"> <tr> <td>NISN</td> <td>Nama</td> <td>Jennis Kelamin</td> <td>Alamat</td> </tr> <?php include "koneksi.php"; $no = 1; $query = mysqli_query($kon, 'SELECT * FROM siswa'); $result = array(); while ($data = mysqli_fetch_array($query)) { $result[] = $data; //result dijadikan array } //selanjutnya result array di foreach foreach ($result as $value){ ?> <tr> <td><?php echo $value['nisn']?></td> <td><?php echo $value['nama']?></td> <td><?php echo $value['jenis_kelamin']?></td> <td><?php echo $value['alamat']?></td> </tr> <?php } ?> </table> </body> </html>
Output

NISN
Nama
Jennis Kelamin
Alamat
Kalau headernya dinamis (diambil dari database) gimana ya bang
Azis… kbtulan admin belum pernah bikin header dinamis..
Kira-kira keperulannya seperti apa? kenapa header dibuat dinamis…