Learn
← Previous Next →

Hari 22: Array Multidimensi & Sorting

60 min Last updated 09 Apr 2026

Array Multidimensi

$inventaris = [
    ["kode" => "P001", "nama" => "Laptop",   "stok" => 10, "harga" => 8500000],
    ["kode" => "P002", "nama" => "Mouse",    "stok" => 50, "harga" => 150000],
    ["kode" => "P003", "nama" => "Keyboard", "stok" => 30, "harga" => 350000],
    ["kode" => "P004", "nama" => "Monitor",  "stok" => 8,  "harga" => 2500000],
];

// Urutkan berdasarkan harga (descending)
usort($inventaris, fn($a, $b) => $b["harga"] <=> $a["harga"]);

foreach ($inventaris as $p) {
    $total = $p["stok"] * $p["harga"];
    printf("%-10s Rp%10s  (stok: %d)\n",
        $p["nama"],
        number_format($total, 0, ",", "."),
        $p["stok"]
    );
}

array_column & array_combine

// Ekstrak satu kolom
$nama_semua = array_column($inventaris, "nama");
// ["Laptop", "Mouse", ...]

// Gunakan kolom sebagai index
$indexed = array_column($inventaris, null, "kode");
echo $indexed["P002"]["nama"]; // Mouse

💡 Notice: <=> adalah spaceship operator: return -1, 0, atau 1. Berguna untuk sorting.

Assignment

Dari array produk (nama, harga, qty), hitung total per produk (harga*qty), filter yang totalnya > 1000000, urutkan descending, tampilkan nama dan total (format Rp).

Expected output:

Laptop: Rp 17,000,000
Monitor: Rp 3,200,000
PHP index.php
Solution
Output