Rangkuman: Pemrosesan Data
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 45 dari 68.
Tantangan
MudahKamu akan menerima tiga input: daftar nama karyawan yang dipisahkan koma, daftar jam kerja mereka untuk minggu tersebut yang dipisahkan koma, dan ambang batas jam minimum. Input pertama berisi nama dalam format Alice,Bob,Charlie,Diana,Eve, input kedua berisi jam kerja sebagai angka dalam format 45,32,50,28,40, dan input ketiga adalah ambang batas jam minimum dalam bentuk angka (contoh: 35).
Baca ketiga input dan ubah menjadi array yang sesuai. Buat array asosiatif gabungan dengan nama karyawan sebagai key dan jam kerja mereka sebagai nilai. Lalu lakukan operasi berikut menggunakan fungsi array tingkat tinggi:
- Gunakan
array_filter()dengan fungsi callback khusus untuk hanya mempertahankan karyawan yang bekerja setidaknya sebanyak ambang batas jam minimum - Gunakan
array_map()dengan fungsi callback khusus untuk menghitung upah lembur bagi karyawan yang telah difilter (lembur adalah jam kerja di atas 40, dibayar dengan tarif 1.5x dari tarif $25 per jam untuk jam kerja reguler) - Gunakan
array_reduce()dengan fungsi callback khusus untuk menghitung total upah lembur semua karyawan yang telah difilter
Cetak hasil dalam format berikut:
- Pertama, cetak nama setiap karyawan yang memenuhi syarat dan upah lemburnya pada baris terpisah dengan format
Name: $Amount(dibulatkan hingga 2 angka desimal) - Terakhir, cetak total upah lembur dengan format
Total: $Amount(dibulatkan hingga 2 angka desimal)
Detail perhitungan:
- Jam kerja reguler (hingga 40): $25 per jam
- Jam lembur (di atas 40): $37.50 per jam (tarif 1.5x)
- Jika karyawan bekerja selama 40 jam atau kurang, upah lemburnya adalah $0.00
Format input:
- Baris pertama: Nama karyawan yang dipisahkan koma (contoh:
Alice,Bob,Charlie,Diana,Eve) - Baris kedua: Jam kerja berupa angka yang dipisahkan koma (contoh:
45,32,50,28,40) - Baris ketiga: Ambang batas jam minimum dalam bentuk angka (contoh:
35)
Output yang diharapkan: Setiap karyawan yang memenuhi syarat beserta upah lemburnya pada baris terpisah, diikuti total upah lembur. Semua jumlah diformat hingga 2 angka desimal
Coba sendiri
<?php
// Baca input
$names = explode(',', trim(fgets(STDIN)));
$hours = explode(',', trim(fgets(STDIN)));
$minHours = intval(trim(fgets(STDIN)));
// Ubah jam kerja menjadi bilangan bulat
$hours = array_map('intval', $hours);
// Buat array asosiatif yang menggabungkan nama dan jam kerja
$employees = array_combine($names, $hours);
// TODO: Tulis kodemu di bawah ini
// 1. Gunakan array_filter() untuk mempertahankan karyawan yang bekerja selama atau melebihi jam minimum
// 2. Gunakan array_map() untuk menghitung upah lembur karyawan yang lolos penyaringan
// 3. Gunakan array_reduce() untuk menghitung total upah lembur
// Tampilkan hasilnya sebagai output
// Cetak upah lembur setiap karyawan yang memenuhi syarat
// Cetak total upah lembur
?>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