Fungsi explode() adalah fungsi PHP yang digunakan untuk memecah sebuah string menjadi array, atau dengan kata lain mengkonversi string menjadi array. Dalam tutorial belajar PHP kali ini kita akan membahas cara penggunaan fungsi explode().
Pengertian Fungsi explode
Fungsi explode() dalam PHP digunakan untuk menkonversi string menjadi array. Dalam memecah sebuah string menjadi array, fungsi explode() membutuhkan beberapa argumen. Berikut adalah format dasar dari fungsi explode dalam PHP:
array explode (string $delimiter , string $string [, int $limit ] )
Penjelasan dari format diatas adalah:
- Nilai kembalian fungsi explode berupa sebuah array.
- Argumen pertama ($delimiter) diisi dengan string karakter yang digunakan sebagai 'pemecah' string menjadi array.
- Argumen kedua ($string) diisi dengan string yang akan dikonversikan.
- Argumen ketiga yang bersifat opsional ($limit) diisi dengan batasan jumlah array yang ingin dihasilkan. Argumen ketiga ini bertipe angka (integer) dan bisa berupa nilai positif atau negatif.
Sebagai contoh, dalam kode program berikut ini saya memecah string $kalimat = "satu dua tiga empat lima" menjadi array:
<?php $kalimat = "satu dua tiga empat lima"; $arr_kalimat = explode (" ",$kalimat); var_dump ($arr_kalimat); Â // array(5) { // [0]=> string(4) "satu" [1]=> string(3) "dua" // [2]=> string(4) "tiga" [3]=> string(5) "empat" // [4]=> string(4) "lima" // } ?>
Dalam string $kalimat diatas, saya menggunakan 'spasi' sebagai pemisah kata sehingga untuk memecah string tersebut, spasi ini akan menjadi pembatas (delimeter) untuk fungsi explode.
Jika string awal dipisahkan dengan karakter koma, titik, atau yang lain, kita bisa menggunakannya sebagai karakter delimeter, seperti contoh berikut:
<?php $kalimat = "satu, dua, tiga, empat, lima"; $arr_kalimat = explode (", ",$kalimat); var_dump ($arr_kalimat); Â // array(5) { // [0]=> string(4) "satu" [1]=> string(3) "dua" // [2]=> string(4) "tiga" [3]=> string(5) "empat" // [4]=> string(4) "lima" // } ?>
Kali ini string $kalimat dipisah dengan tanda 'spasi dan koma', sehingga saya tinggal menulis fungsi explode (", ",$kalimat).
Argumen ketiga fungsi explode() bersifat opsional. Argumen ini bisa diisi dengan angka (integer) positif maupun negatif. Jika diisi dengan angka positif, maka angka disini menunjukkan jumlah batasan element array yang akan dihasilkan. Langsung saja kita praktek menggunakan contoh:
<?php $kalimat = "satu, dua, tiga, empat, lima"; $arr_kalimat = explode (", ",$kalimat, 3); var_dump ($arr_kalimat); Â // array(3) { // [0]=> string(4) "satu" // [1]=> string(3) "dua" // [2]=> string(17) "tiga, empat, lima" // } ?>
Dapat anda perhatikan bahwa walaupun string $kalimat seharusnya bisa dipecah menjadi 5 element array, tapi hasil dari fungsi explode (", ",$kalimat, 3) hanya menghasilkan 3 element array, sesuai dengan angka "3" dari argumen ketiga. Untuk element ke-3 array, PHP akan mengambil seluruh string hingga akhir.
Namun jika kita menginput nilai negatif, hasilnya akan berbeda:
<?php $kalimat = "satu, dua, tiga, empat, lima"; $arr_kalimat = explode (", ",$kalimat, -3); var_dump ($arr_kalimat); Â // array(2) { // [0]=> string(4) "satu" // [1]=> string(3) "dua" // } ?>
Kali ini hanya 2 element array yang dihasilkan. Ini terjadi karena angka "–3" berarti: kurangi total element array sebanyak 3. Apabila saya menggunakan fungsi explode 'biasa', akan terdapat 5 element array yang bisa dihasilkan (seperti contoh pertama dalam tutorial ini), namun karena saya menambahkan nilai -3 pada argumen ke 3, hasil akhirnya akan dikurangi sebanyak 3 element (5 – 3 = 2 element).
Dalam tutorial belajar PHP di duniailkom kali ini, kita telah membahas pengertian dan cara pemakaian fungsi explode(). Fungsi explode sendiri digunakan untuk mengkonversi sebuah string menjadi array dalam PHP.
Kalo misalnya ada:
$kata = "NAMA";
$arr = explode('', $kata);
echo $arr[0];
Harusnya kan muncul N, tapi ini kenapa gak muncul? Atau salah di delimiternya?
Kalau delimeternya kosong seperti itu memang akan error gan. Khusus jika kita ingin memecah string menjadi karakter, bisa menggunakan fungsi: str_split.
<?php
$kata = "NAMA";
$arr = str_split($kata);
echo $arr[0]; // N
?>
Mas, kok nggak ada tutorial macam-macam string? Padahal di blog ini tutorialnya bagus-bagus, misal: str_replace
Iya nih mas, belum sempat dilengkapi. Mudah2an nanti akan ditulis :)
kalau syntax php buat mengkonversi string ke bilangan heksadesimal apa gan??
Dari string y gan? bukan angka y? Berarti agan ingin konversi huruf "A" ke bilangan heksadesimal ASCII y? bisa menggunakan kombinasi fungsi ord() dan dechex(), seperti contoh berikut:
<?php
$string_asal="A";
$desimal_ascii=ord($string_asal);
$hexa_ascii = dechex($desimal_ascii);
echo $hexa_ascii; // 41
?>
makasih gan ,, anda membantu saya… (y)
program PHP yg berfungsi untuk memasukkan suatu string pada posisi tertentu, ke suatu string lainnya syntaxnya gmana gan??
ane agak bingung..
misalkan saya punya variabel
$string = "saya makan nasi";
mau ganti style kata makan ke bold (<strong>makan</strong>)
gimana caranya?????
Maksudnya dari hasil explode mau ditambahkan lagi tag <strong> y gan? Sepertinya harus buat perulangan khusus, bisa menggunakan foreach lalu hasilnya disimpan ke array baru.
saran nih boss admin..
untuk setiap tutorial2 dasarnya itu harusnya di beritahukan fungsi atau tutorial ini di implementasikan pada bagian mana pd website itu
misalnya :
1. explode string ini., tutorial ini berfungsi pada implementasian pembuatan kategori atau tag, anda bisa menginput data data kategori atau tag yang dipisahkan dengan spasi itu menjadi bagian2 yang akan disimpan dalam database
2.
demi kmajuan bersama.. saya ucapkan terimakasih
Terimakasih atas sarannya gan…
Tapi tutorial ini memang murni tentang PHP saja. Untuk implementasinya apakah untuk pembuatan kategori, tag, database, itu sudah bagian lain.
Ibarat belajar perkalian, kita menghapal 2 x 8 = 16, 7 x 7 = 49. Tentang penerapannya sehari2, bisa sangat banyak, bisa untuk menghitung luas persegi, beli telur ayam di pasar, dll. Begitu juga dengan fungsi explode() PHP, penerapannya bisa sangat beragam.
Mau tanya gan, kalo mau merubah deretan huruf ke array gmna ya. Contoh 123456
Bisa pakai fungsi str_split():
<?php
$kalimat = "123456";
$arr_kalimat = str_split($kalimat);
var_dump ($arr_kalimat);
?>
mau tanyak gan, bagaimana caranya untuk membatasi elemen array yang akan di tampilkan
contoh:
Array ( [0] => Merupakan [1] => tempat [2] => yang [3] => tepat [4] => untuk [5] => menghabiskan [6] => waktu [7] => bersama [8] => keluarga [9] => maupun [10] => kerabat
elemen array di atas sampai 10 kalau di batasi sampi 4 gmna ya tapi isi data 5 sd 10 tidak tampil.
tolong arahannya gan…!!
Arraynya mau ditampilkan pakai metode apa? Kalau pakai perulangan, tinggal di set saja agar perulangannya berjalan hanya sampai 4 kali (untuk menampilkan 4 array pertama).
mas, bagaimana cara merubah array ke table menggunakan php?
Cukup panjang nih kalau dijelaskan, soalnya itu sudah melibatkan 2 "bahasa", yakni HTML dan PHP. Harus paham dulu apa itu HTML dan PHP serta hubungannya. Silahkan baca2 semua tutorial HTML dan PHP di Duniailkom ini secara berurutan, saya yakin nanti akan bisa sendiri.
Soalnya beda bentuk array, beda lagi cara pemrosesannya.
Permisi saya mau tanya, kalo mau memecah string berdasarkan enter gmn ya?, saya mau bikin input artikel
Untuk keperluan itu bisa menggunakan regular expression, contohnya:
$array_akhir= preg_split("/\\r\\n|\\r|\\n/", $string_asal);
Terima kasih tutorialnya sangat membantu saya dalam memahami program.
Bang napa pas saya lakuin file put contents hasil dari explode hasilnya kaga berbentuk array? solusinya bang!
contoh :
$data =
"Nama
Umur
Kelas";
$exp = explode("
", $data) ;
file_put_contents("data.txt",$exp);
nah hasilnya isi data.txt kaga berbentuk array. Kenapa ya bang? solusinya juga bang!
bang, kalau mau merubah string untuk ada yang jadi index dan ada yang jadi elemt array gimana ya ?
misal seperti : $syarat = tinggi : 12, un: 15, Us : 13; menjadi array ( [tinggi] => 12, [un] => 15, [us] : 14 )
Kalau asalnya sudah berbentuk variabel, di PHP ada namanya fungsi compact(). Contoh penggunaannya seperti ini:
$a = "Risa Lestari";
$b = "Rudi Hermawan";
$c = "Bambang Kusumo";
$arr = compact("a", "b", "c");
echo $arr["a"]; // Risa Lestari
echo $arr["b"]; // Rudi Hermawan
echo $arr["c"]; // Bambang Kusumo
Tapi kalau asalnya masih berbentuk string "tinggi : 12, un: 15, Us : 13", maka harus dipecah dulu misalnya menggunakan regular expression.
min kalo kita memiliki link pencarian misalnya http://localhost/tes/printer saya mau menampilkan data nama dari database yang isinya (printer,alat cetak) tapi pas saya search alat cetak juga tampil. saya pingin keduanya dipecah berdasarkan apa yang kita cari. gimana ya min? mohon bantu.
jadi kali link printer => yang tampil array printer
kalo alat cetak => yang nampil alat cetak
meskipun keduanya dalam satu data yang hanya dipisahkan koma.
Bisa ditambah 1 kolom lagi ke dalam tabel database untuk menampung nilai "tipe", yakni apakah item yang disimpan adalah printer, alat cetak, atau tipe2 lain. Sehingga nanti querynya bisa disambung dengan perintah WHERE type = 'printer' agar yang tampil hanya tipe printer saja.
Awal datanya begini :
{"success":true,"message":"Success","data":[{"group":"Virtual Account","code":"MYBVA","name":"Maybank Virtual Account","type":"direct","charged_to":"customer","fee":{"flat":3750,"percent":"0.00"},"active":true},{"group":"Virtual Account","code":"PERMATAVA","name":"Permata Virtual Account","type":"direct","charged_to":"customer","fee":{"flat":3750,"percent":"0.00"},"active":true},{"group":"Virtual Account","code":"BNIVA","name":"BNI Virtual Account","type":"direct","charged_to":"customer","fee":{"flat":3750,"percent":"0.00"},"active":true},{"group":"Virtual Account","code":"BRIVA","name":"BRI Virtual Account","type":"direct","charged_to":"customer","fee":{"flat":1750,"percent":"0.00"},"active":true},{"group":"Virtual Account","code":"MANDIRIVA","name":"Mandiri Virtual Account","type":"direct","charged_to":"customer","fee":{"flat":2750,"percent":"0.00"},"active":true},{"group":"Convenience Store","code":"ALFAMART","name":"Alfamart","type":"direct","charged_to":"customer","fee":{"flat":1250,"percent":"0.00"},"active":true},{"group":"Convenience Store","code":"INDOMARET","name":"Indomaret","type":"direct","charged_to":"customer","fee":{"flat":1250,"percent":"0.00"},"active":true},{"group":"Convenience Store","code":"ALFAMIDI","name":"Alfamidi","type":"direct","charged_to":"customer","fee":{"flat":1250,"percent":"0.00"},"active":true},{"group":"E-Wallet","code":"QRIS","name":"QRIS","type":"redirect","charged_to":"customer","fee":{"flat":750,"percent":"0.70"},"active":true}]}
niat saya, saya tuh mau masukin satu" ke database, tp pas saya ambil malah offset. lalu saya akali seperti ini :
$data = json_decode($response, true);
if ($data['message'] == 'Success') {
foreach ($data['data'] as $keep) {
$group = $keep['group'];
$code = $keep['code'];
$name = $keep['name'];
$type = $keep['type'];
$flat = $keep['fee']['flat'];
$percent = $keep['fee']['percent'];
mysqli_query($konek, "INSERT INTO c_pembayaran (group, code, name, type, flat, percent) VALUES ('$group','$code','$name','$type','$flat','$percent')");
}
echo 'OK';
}
ehhh…. OKnya keluar tapi data yang di ambil tidak masuk ke database. mengapa ya?
Sangat pas untuk membuat fitur "Separated with comma," :)
Mau tanya gan, kalau mau menambahkan koma gimana ya? contohnya data diambil dari database tapi tidak ada koma gini,,,
variable $mahasiswa isinya ada
20
10
30
40
jika di echo dan ingin di tambahkan komna caranya gimana ya?