'array_map' dengan Fungsi Kustom
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 40 dari 68.
Meskipun fungsi bawaan seperti strtoupper bekerja dengan baik bersama array_map(), kekuatan sebenarnya muncul saat kamu menggunakan fungsi kustom buatanmu sendiri. Dengan begitu, kamu dapat membuat transformasi khusus yang disesuaikan dengan kebutuhanmu.
Untuk menggunakan fungsi kustom dengan array_map(), cukup berikan nama fungsi sebagai string untuk parameter pertama. Fungsi kustommu harus menerima satu parameter (elemen array saat ini) dan mengembalikan nilai yang telah diubah.
<?php
function doubleNumber($num) {
return $num * 2;
}
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Hasil: [2, 4, 6, 8, 10]
?>Pendekatan ini memberimu kendali penuh atas cara setiap elemen diproses. Kamu dapat melakukan perhitungan yang rumit, manipulasi string, atau logika lain di dalam fungsi kustommu, sehingga array_map() sangat serbaguna untuk tugas transformasi data.
Tantangan
MudahKamu akan menerima dua input: daftar suhu Celsius yang dipisahkan dengan koma dan satuan tujuan konversi, yaitu F untuk Fahrenheit atau K untuk Kelvin. Input pertama berisi suhu sebagai string dengan format 0,10,20,30,100, dan input kedua adalah satu karakter yang menunjukkan jenis konversi.
Baca kedua input, ubah suhu yang dipisahkan dengan koma menjadi array angka, buat fungsi khusus untuk mengonversi suhu Celsius ke satuan tujuan, gunakan array_map() dengan fungsi khususmu untuk mengubah semua suhu, lalu cetak setiap suhu hasil konversi pada baris terpisah, dibulatkan hingga 2 angka desimal.
Rumus konversi:
- Celsius ke Fahrenheit:
(C × 9/5) + 32 - Celsius ke Kelvin:
C + 273.15
Format input:
- Baris pertama: Suhu Celsius yang dipisahkan dengan koma (contoh:
0,10,20,30,100) - Baris kedua: Satuan tujuan konversi, yaitu
FatauK(contoh:F)
Output yang diharapkan: Setiap suhu hasil konversi dicetak pada baris terpisah, dibulatkan hingga 2 angka desimal
Coba sendiri
<?php
// Baca suhu yang dipisahkan dengan koma
$temperatures = fgets(STDIN);
// Baca satuan tujuan (F atau K)
$unit = trim(fgets(STDIN));
// Ubah string yang dipisahkan dengan koma menjadi array angka
$tempArray = explode(',', trim($temperatures));
// TODO: Tulis kodemu di bawah ini
// Buat fungsi khusus untuk mengubah Celsius ke satuan tujuan
// Gunakan array_map() untuk mengonversi semua suhu
// Cetak setiap suhu yang telah dikonversi pada baris terpisah, dibulatkan hingga 2 angka di belakang koma
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkat6Fungsi array Tingkat Tinggi
Transformasi dengan 'array_map''array_map' dengan Fungsi KustomMemfilter dengan 'array_filter''array_filter' dengan Fungsi KustomMengurangi dengan 'array_reduce'Menelusuri dengan 'array_walk'Rangkuman: Pemrosesan DataLatihan sendiri: Compiler PHP online