Memahami Fungsi Perulangan Foreach Pada PHP

Setelah sebelumnya kita belajar  tentang array pada PHP, kali ini kita akan membahas perulangan foreach pada PHP.

Perulangan foreach digunakan untuk melakukan perulangan nilai array, baik pada indexed array (array berindex) maupun associative array (array asosiatif). Disamping itu, foreach juga dapat digunakan untuk melakukan perulangan nilai objek (Class).

Key, Value, Indexed dan Associative Array

Sebelum kita membahas foreach pada PHP, penting untuk memahami tentang key dan value pada array, karena hal tersebut akan lebih mempermudah kita memahami perulangan foreach.

Seperti telah dijelaskan pada artikel Memahami Array Pada PHP, indexed array merupakan array dengan key berupa angka, misal:

$bulan = array('Januari', 'Februari', 'Maret')

Pada contoh diatas, value  dari array adalah Januari, Februari, dan Maret, sedangkan key nya adalah 0, 1, dan 2. Karena key tidak didefinisikan, maka nilai key otomatis mulai dari 0

bentuk diatas sama dengan:

array(0=>'Januari',1=>'Februari',3=>'Maret')

sedangakan associative array merupakan array dengan key berupa nilai tertentu, misal:

array('jenis' => 'Mobil', 'merk' => 'Toyota', 'tipe' => 'Vios')

Pada contoh diatas, value dari array adalah Mobil, Toyota, dan Vios. Sedangkan key-nya adalah jenis, merk, dan tipe.

I. Cara Penulisan Foreach Pada PHP

Setelah kita faham tentang key dan value pada array, kita

Pada PHP foreach dapat ditulis dalam dua cara yaitu:

1 Mengabaikan nilai key

Pada cara ini, nilai key akan diabaikan/tidak digunakan:

foreach ($array as $value) {
	statement;
}

Penjelasan:

  • $array adalah nama variabel  array yang akan kita gunakan untuk perulangan.
  • $value adalah nama variabel yang mewakili nilai/data dari array yang ada pada variabel $array.  Kita bebas memberi nama variabel ini, umumnya variabel tersebut diberi nama $value, $val atau cukup $v.

Cara ini bermanfaat jika kita hanya ingin menggunakan data value dari array dan mengabaikan data key nya

Contoh penggunaan:

$bulan = array ('Januari', 'Februari', 'Maret');
foreach ($bulan as $nama_bulan) {
	echo $nama_bulan . '<br/>';
}

Hasil yang kita peroleh:

Januari
Februari
Maret

2 Menyertakan nilai key

Model  kedua adalah dengan menyertakan nilai key, cara ini berlaku baik untuk indexed array maupun associative array. adapun format penulisannya adalah sebagai berikut:

foreach ($array as $key => $value) {
	statement;
}

Penjelasan:

  • $array adalah nama variabel array yang akan kita gunakan untuk perulangan.
  • $key  merupakan nama variabel yang mewakili nilai index yang ada di dalam variabel $array. Kita bebas memberi nama variabel ini, umumnya variabel tersebut diberi nama $key atau cukup $k
  • Tanda => digunakan untuk menghubungkan antara  $key dan $value nya
  • Seperti pada model pertama, $value adalah nama variabel yang mewakili data value yang ada di dalam variabel $array. Kita juga bebas memberi nama variabel ini, umumnya nama yang digunakan adalah $value, $val, atau cukup $v

Contoh penggunaan pada indexed array:

$bulan = array ('Januari', 'Februari', 'Maret');
foreach ($bulan as $index => $nama_bulan) {
	echo ($index + 1) . '. ' . $nama_bulan . '<br/>';
}

Hasil yang kita peroleh:

1. Januari
2. Februari
3. Maret

Pada contoh diatas terlihat bahwa setiap array pasti  memiliki key, sehingga meskipun key tersebut tidak kita tulis, key tersebut tetap ada dan bisa digunakan.

Contoh pada associative array:

$kendaraan = array('jenis' => 'Mobil', 'merk' => 'Toyota', 'tipe' => 'Vios');
foreach ($kendaraan as $key => $val) {
	echo ucfirst($key) . ': ' . $val . '<br/>';
}

Hasil yang kita peroleh:

Jenis: Mobil
Merk: Toyota
Tipe: Vios

Pada contoh diatas, saya menggunakan fungsi ucfirst untuk membuat huruf pertama dari key menjadi huruf besar.

3 Foreach didalam foreach (nested foreach)

Pada multidmensional array, kita akan sering membuat perulangan  foreach didalam foreach.

Hati hati jika membuat perulangan dengan model seperti ini, karena sifat variabel dapat berubah ubah, maka, nilai variabel dari $key dan $value  juga rawan berubah.

Oleh karena itu, sebisa mungkin memberi nama variabel untuk $key dan $value  sesuai dengan isi datanya, sehingga memudahkan kita untuk membaca alur dari perulangan.

Contoh:

foreach ($array as $key => $val) {
	statement;
	foreach ($val as $key => $val) {
		statement;
	}
}

Pada contoh tersebut nilai variabel $key pada foreach yang pertama akan berubah karena ditimpa oleh nilai variabel $key pada foreach ke dua.

II. Contoh Penggunaan  Foreach Pada PHP

Pada PHP, foreach dapat digunakan untuk berbagai keperluan baik untuk backend maupun frontend, pada frontend, foreach digunakan salahsatunya untuk membuat element dropdown select.

Contoh kita ingin membuat dropdown nama bulan, dibanding menggunakan cara manual, akan jauh lebih efisien jika menggunakan perulangan foreach:

<?php
$bulan = array (1=>'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember');

$opsi_bulan = '<select name="bulan">';
foreach ($bulan as $key => $value) {
	$opsi_bulan .= '<option value="' . $key . '">' . $value . '</option>' . "\r\n";
}
$opsi_bulan .= '</select>';

echo $opsi_bulan;

Kode HTML  yang kita peroleh:

<select name="bulan">
<option value="1">Januari</option>
<option value="2">Februari</option>
<option value="3">Maret</option>
<option value="4">April</option>
<option value="5">Mei</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">Agustus</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Desember</option>
</select>

Output:

Contoh lain adalah untuk membuat tabel HTML

$no = 1;
$tabel = '
<table>
	<tr>
		<th>No</th>
		<th>Bulan</th>
		<th>Penjualan</th>
	</tr>';
foreach ($sales as $bulan => $nilai) {
	$tabel .= '
	<tr>
		<td>' . $no . '</td>
		<td>' . $bulan . '</td>
		<td>' . $nilai . '</td>
	</tr>';
	$no++;
}
$tabel .= '</table>';
echo $tabel;

Hasil:

<table>
	<tr>
		<th>No</th>
		<th>Bulan</th>
		<th>Penjualan</th>
	</tr>
	<tr>
		<td>1</td>
		<td>Januari</td>
		<td>5.500</td>
	</tr>
	<tr>
		<td>2</td>
		<td>Februari</td>
		<td>7.500</td>
	</tr>
	<tr>
		<td>3</td>
		<td>Maret</td>
		<td>11.500</td>
	</tr>
	<tr>
		<td>4</td>
		<td>April</td>
		<td>8.800</td>
	</tr>
	<tr>
		<td>5</td>
		<td>Mei</td>
		<td>7.500</td>
	</tr>
</table>

Cara Lain

Disamping menggunakan cara diatas, perulangan pada array juga dapat dilakukan menggunakan perulangan for. Pembahasan tentang perulangan for dapat dibaca pada artikel: Memahami Perulangan For Pada PHP

Demikian pembahasan tentang perulangan foreach pada PHP, semoga bermanfaat.

Subscibe Now

Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

16 Feedback dari pembaca

Silakan tinggalkan komentar

Newsletter

Jadilah yang pertama tahu berita terbaru dari Jagowebdev.com