Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

PHP Dasar

Pelajaran 10 dari 15

Fungsi dan array

Fungsi array: sort, array_map, array_filter, implode

Setelah pelajaran ini kamu bisa menebak hasil sort, asort, array_filter, dan pasangan implode/explode, termasuk apa yang terjadi pada kunci.

±13 menitDiperiksa 5 Okt 2026

Materi

`sort($a)` mengurutkan array dari kecil ke besar dan mengubah array aslinya. Nilai baliknya bukan array yang sudah urut, melainkan `true`. sort juga membuang kunci lama dan memberi kunci baru 0, 1, 2. Untuk array asosiatif, pakai `asort` (urut nilai, pasangan kunci dijaga), `arsort` (urut nilai dari besar ke kecil, kunci dijaga), atau `ksort` (urut kunci).

`array_map(fn($x) => $x * 2, $a)` membuat array baru dari hasil fungsi untuk setiap elemen. `array_filter($a, fn($x) => $x > 0)` membuat array baru berisi elemen yang lolos syarat, dan manual PHP menegaskan kuncinya dipertahankan, jadi bisa ada lubang: kunci 1 dan 3 tanpa 0 dan 2. `array_keys($a)` mengambil daftar kuncinya. `fn($x) => ...` adalah fungsi pendek (arrow function) yang langsung mengembalikan ekspresinya.

`implode(", ", $a)` menggabungkan elemen array menjadi satu string dengan pemisah. Kebalikannya, `explode(",", $teks)` memecah string menjadi array. Urutan argumen keduanya sama: pemisah dulu, data kemudian. `array_sum($a)` menjumlahkan semua nilai.

<?php
$harga = [12000, 5000, 8000];
$naik = array_map(fn($h) => $h + 1000, $harga);
echo implode(", ", $naik) . "\n";
echo array_sum($naik);
13000, 6000, 9000
28000

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Apa keluaran program ini?

<?php
$harga = [12000, 5000, 8000];
$urut = sort($harga);
var_dump($urut);
echo implode(", ", $harga);
Pilih satu jawaban

Latihan 2 dari 3

Apa keluaran program ini?

<?php
$stok = [0, 12, 0, 7];
$ada = array_filter($stok, fn($s) => $s > 0);
echo count($ada) . " ";
echo implode(",", array_keys($ada));
Pilih satu jawaban

Latihan 3 dari 3

Pilihan mana yang mengganti `/* ??? */` agar program mencetak `Bandung | Bogor | Bekasi`?

<?php
$kota = "Bandung,Bogor,Bekasi";
/* ??? */
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke