(View Original Web?)

HOBBY > SOURCE CODE

Script PHP macam-macam Function Sorting yang biasa digunakan


(Page 1 of 1)
Data yang akan disort ini haruslah dalam bentuk array. Berikut ini beberapa function yang dapat digunakan untuk sorting:

sort()

Function ini akan mensorting data array mulai dari terkecil sampai terbesar (ASCENDING). Berikut ini contoh penggunaanya:

Quote
Code:
<?php
 
$angka 
= array("34""12""14""20");
sort($angka);
for (
$i=0$i<=3$i++)
{
   echo 
$angka[$i]."<br />";
}
?>

Hasil output script di atas adalah
12
14
20
34

Anda dapat pula menggunakan sort() untuk mengurutkan data array yang elemennya berupa string.

Quote
Code:
<?php
 
$nama 
= array("agus""amir""dedi""budi");
sort($nama);
for (
$i=0$i<=3$i++)
{
   echo 
$nama[$i]."<br />";
}
?>

Hasil script di atas adalah
agus
amir
budi
dedi

Untuk data string, hasil sorting akan diurutkan secara alfabetis.

Selanjutnya… bagaimana jika kita ingin melakukan sorting secara descending alias dari nilai terbesar sampai terkecil? Ya… Anda dapat menggunakan function rsort() atau reverse sort.

rsort()

Function ini merupakan kebalikan dari sort(). Berikut ini contoh penggunaannya:

Quote
Code:
<?php
 
$angka 
= array("34""12""14""20");
rsort($angka);
for (
$i=0$i<=count($angka)-1$i++)
{
   echo 
$angka[$i]."<br />";
}
?>

Output dari script di atas adalah
34
20
14
12

Keterangan: function count() digunakan untuk menghitung jumlah elemen data dari array. Pada contoh di atas count($angka) akan menghasilkan 4.

Sedangkan contoh penggunaan rsort() untuk array dengan data string adalah

Quote
Code:
<?php
 
$nama 
= array("agus""amir""dedi""budi");
rsort($nama);
for (
$i=0$i<=3$i++)
{
   echo 
$nama[$i]."<br />";
}
?>

dedi
budi
amir
agus

Sekarang ada kasus lagi seperti ini. Misalkan kita punya 3 buah array. Array pertama berisi data NIM mahasiswa, array kedua berisi Nama Mahasiswa dan array ketiga berisi alamat mahasiswa.

Quote
Code:
$nim = array("M01", "M03", "M02", "M05");
$nama = array("agus", "budi", "amir", "asep");
$alamat = array("solo", "boyolali", "solo", "klaten");

Ketiga array memiliki keterkaitan data. Misalnya M01 adalah NIM dari mahasiswa bernama AGUS yang beralamat di Solo, M02 miliknya AMIR yang beralamat di Solo, dst. Sekarang misalkan kita ingin mensorting ketiga data array berdasarkan nama mahasiswa secara ascending. Kita mengharapkan output sbb:
M01 agus solo
M02 amir solo
M05 asep klaten
M03 budi boyolali

Bagaimana cara melakukannya? Ya… untuk kasus seperti ini, kita gunakan function array_multisort()

array_multisort()

Function ini dapat digunakan untuk mensorting beberapa array sekaligus (multi array). Sintaks dari function ini adalah

Quote
Code:
array_multisort(array1, tipe sort, array2, array3, ...);

Parameter array1 adalah array yang dijadikan dasar sorting. Pada contoh di atas (tentang nim, nama mahasiswa dan alamat), yang dipilih sebagai array1 adalah nama mahasiswa karena kita ingin mengurutkan data berdasarkan nama mahasiswa. Parameter kedua, tipe sort, kita tentukan tipe sorting apakah descending atau ascending. Bila descending, kita tuliskan SORT_DESC sedangkan ascending SORT_ASC. Sedangkan parameter ketiga, keempat dst diisi dengan array yang lain. Susunan array dalam parameter ketiga, keempat dst ini dapat dibolak-balik karena tidak mempengaruhi hasil sorting.

Sehingga untuk kasus di atas, perintah array_multisort nya adalah sbb:
Quote
Code:
array_multisort($nama, SORT_ASC, $nim, $alamat);

atau
Quote
Code:
array_multisort($nama, SORT_ASC, $alamat, $nim);

Secara lengkap, script PHP untuk melakukan sorting kasus di atas adalah sbb:
Quote
Code:
<?php
 
$nim 
= array("M01""M03""M02""M05");
$nama = array("agus""budi""amir""asep");
$alamat = array("solo""boyolali""solo""klaten");
 
array_multisort($namaSORT_ASC$nim$alamat);
 
for (
$i=0$i<=count($nim)-1$i++)
{
   echo 
$nim[$i]." ".$nama[$i]." ".$alamat[$i]."<br />";
}
?>

Apabila script di atas dijalankan, maka akan diperoleh hasil seperti yang diharapkan di atas.

sumber
 
(Page 1 of 1)

Navigation

Back Sub-Forum