Sorting array multi demensi

Sering terjadi pada aplikasi yang kompleks kita kerepotan dalam
mensorting array, terutama untuk array multi demensi. Dari forum id-php
pernah di bahas mengenai hal ini, saya melihat coding yang diberikan
sangat kompleks. Dalam pikiran saya apakah mungkin PHP memiliki fungsi
yang built-in ?

Setelah mengutak atik manual php, awalnya saya membuka fungsi asort().
Kemudian saya temukan fungsi array_multisort(). Menarik jadinya.

<?php
// Multi-Demensi Array assoc Items
$items = array
(
'januari' => array( 'qty' => 100, 'rp' => 10000),
'februari' => array( 'qty' => 120, 'rp' => 12000),
'maret' => array( 'qty' => 32, 'rp' => 3200),
'april' => array( 'qty' => 210, 'rp' => 22000),
'mei' => array( 'qty' => 150, 'rp' => 25000),
'juni' => array( 'qty' => 15, 'rp' => 15000),
);

echo '<pre>';
print_r($items);

function qty_sort($a) {
return $a['qty'];
}

function rp_sort($a) {
return $a['rp'];
}

// Mensortir berdasarkan Qty DESC
$array_sort = array_map('qty_sort', $items);
array_multisort($array_sort,SORT_DESC,$items);
print_r($items);

// Mensortir berdasarkan Rp DESC
$array_sort = array_map('rp_sort', $items);
array_multisort($array_sort,SORT_DESC,$items);
print_r($items);

echo '</pre>';
?>

Komentar

  1. Konsep array

    Array adalah kumpulan beberapa data yang disimpan dalam satu
    variabel. Jadi, berbeda dengan variabel sebelumnya yang hanya
    menyimpan satu nilai saja, array dapat menampung lebih dari satu nilai.

    Tiap nilai dalam array (disebut elemen) diakses dengan menggunakan
    index. PHP mengenal dua macam index, yaitu index numerik dan index
    asosiatif. Index numerik menggunakan angka untuk menandai tiap
    elemen, sedangkan index asosiatif memberi nama untuk masing-masing
    elemen.

    Semoga bermanfaat.

    Salam dari kami :
    KOMUNITAS PELAJAR ILMU KOMPUTER INDONESIA

    BalasHapus
  2. ini dia yang aku cari...contoh sorting array multidimensi. tengkyu... :D

    BalasHapus

Posting Komentar