Bagaimana Cara Mengurutkan Array Asosiatif Berdasarkan Nilai di PHP?

Dibuat
·
Dilihat63 kali
0

Saya punya array asosiatif bernama $products , bagaimana cara mengurutkan item array tersebut agar item dengan price terbesar ada diawal dan yang paling kecil diakhir.

$products = [
  ["name" => "keu lapis keju", "price" => 35000],
  ["name" => "kue lapis cokelat", "price" => 29000],
  ["name" => "keu lapis keju & cokelat", "price" => 54300],
];

Yang saya inginkan:

$products = [
  ["name" => "keu lapis keju & cokelat", "price" => 54300],
  ["name" => "keu lapis keju", "price" => 35000],
  ["name" => "kue lapis cokelat", "price" => 29000],
];
1 Jawaban
0

Fungsi my_sort()membandingkan dua elemen array berdasarkan harganya. Jika harga elemen pertama sama dengan harga elemen kedua, fungsi ini mengembalikan 0. Jika harga elemen pertama lebih besar dari harga elemen kedua, fungsi ini mengembalikan -1, dan sebaliknya. Fungsi ini digunakan sebagai aturan pengurutan saat menggunakan fungsi usort() atau uasort()

usort() menerima 2 argumen dari array diterima dan argumen callback sebagai comparison yang telah dibuat 

<?php 
$products = [
  ["name" => "keu lapis keju", "price" => 5],
  ["name" => "kue lapis cokelat", "price" => 0],
  ["name" => "keu lapis keju & cokelat", "price" => 6],
];

function my_sort($a, $b){
    if ($a['price'] == $b['price']) return 0;
    return ($a['price'] > $b['price']) ? -1 : 1;
}

usort($products, "my_sort");
foreach($products as $key => $value) {
    echo "[" . $key . "] => " . $value['price'];
}
?>
Dibuat

Kamu tau jawabannya?

Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!