Sorting Data Array PHP

Sorting Data Array PHP – Hai sobat Teknew lama sekali gak update tulisan. Mumpung ada sedikit waktu luang nih dan sekaligus mau mengabadikan salah satu contoh kasus yang baru saja saya alami yaitu Sorting Data Array PHP. Kalau biasanya saya sudah sering mensorting data yang didapat dari database dalah hal ini mysql. Jika menggunakan mysql kita hanya cukup menambahkan ORDER BY xxx ACS saja sebagai sorting. Lalu pertanyaanya jika kita hanya mempunyai data berupa array dan kita ingin mensorting nya gimana ya???
Saya cukup penasaran dengan kasus ini. Ssebab memang saya bukan seorang expert PHP Scriptor. Jadi saya hanya memulai dari Trial and Error saja. Berawal dari sebuah kasus parsing data dari histori perjalanan expedisi yang saya gunakan, saya mendapatkan data yang tidak berurutan. berikut contohnya:

Data array salah satu Ekspedisi

Array
(
	[0] => stdClass Object
	(
		[date] => 19-07-2019 19:22
		[desc] => SHIPMENT RECEIVED BY JNE COUNTER OFFICER AT [JAKARTA]
	)
	[1] => stdClass Object
	(
		[date] => 19-07-2019 20:48
		[desc] => SHIPMENT PICKED UP BY JNE COURIER [JAKARTA]
	)
	[2] => stdClass Object
	(
		[date] => 19-07-2019 21:29
		[desc] => RECEIVED AT SORTING CENTER [JAKARTA]
	)
	[3] => stdClass Object
	(
		[date] => 19-07-2019 23:40
		[desc] => RECEIVED AT ORIGIN GATEWAY [GATEWAY JAKARTA]
	)
	[4] => stdClass Object
	(
		[date] => 19-07-2019 23:33
		[desc] => DEPARTED FROM TRANSIT [GATEWAY JAKARTA]
	)
	[5] => stdClass Object
	(
		[date] => 20-07-2019 23:39
		[desc] => DEPARTED FROM TRANSIT [SURABAYA GATEWAY,SGD]
	)
	[6] => stdClass Object
	(
		[date] => 21-07-2019 00:32
		[desc] => RECEIVED AT WAREHOUSE [MALANG]
	)
	[7] => stdClass Object
	(
		[date] => 23-07-2019 09:04
		[desc] => WITH DELIVERY COURIER [MALANG]
	)
	[8] => stdClass Object
	(
		[date] => 23-07-2019 10:34
		[desc] => DELIVERED TO [xxxxxx | 23-07-2019 10:34 | MALANG ]
	)
	[9] => stdClass Object
	(
		[date] => 19-07-2019 21:25
		[desc] => SHIPMENT PICKED UP BY JNE COURIER [JAKARTA]
	)
	[10] => stdClass Object
	(
		[date] => 19-07-2019 21:50
		[desc] => PROCESSED AT SORTING CENTER [JAKARTA]
	)
	[11] => stdClass Object
	(
		[date] => 20-07-2019 23:08
		[desc] => RECEIVED AT ORIGIN GATEWAY [JAKARTA]
	)
	[12] => stdClass Object
	(
		[date] => 21-07-2019 13:24
		[desc] => SHIPMENT FORWARDED TO DESTINATION [WONOSARI, KAB.MALANG]
	)
)

Data tersebut tidak berurutan secara histori waktunya, sehingga hal ini akan menyulitkan (membingungkan) dalam pembacaan historinya. Kalaupun dipaksakan bisa aja sih, cuman kalau dari segi pengguna sistem informasi (dalam hal ini adalah pelanggan ekspedisi tersebut), hal ini sangat mengganggu dan cukup menyita waktu untuk mengamati data yang tidak berurutan tersebut.
Berdasarkan data diatas, saya ingin mengurai kasus tersebut , Dan saya awali dengan sungkem kepada sesepuh Mbah Google. Dan akhirnya saya menemukan sebuah forum yang membahas tentang masalah ini (cek it out).
Salah seorang user forum (vimist) menjelaskan, bahwa Sorting Data Array PHP dapat menggunakan “usort()” untuk sorting array, berikut kode lengkapnya:

Sorting Data Array Script

<?php
usort($data, function($a, $b) { //Sort the array using a user defined function
    return $a->score > $b->score ? -1 : 1; //Compare the scores
});
print_r($data);
?>

setelah data kita sorting menggunakan fungsi diatas, maka data akan berurutan menjadi seperti dibawah ini:

Array
(
	[0] => stdClass Object
	(
		[date] => 19-07-2019 19:22
		[desc] => SHIPMENT RECEIVED BY JNE COUNTER OFFICER AT [JAKARTA]
	)
	[1] => stdClass Object
	(
		[date] => 19-07-2019 20:48
		[desc] => SHIPMENT PICKED UP BY JNE COURIER [JAKARTA]
	)
	[2] => stdClass Object
	(
		[date] => 19-07-2019 21:25
		[desc] => SHIPMENT PICKED UP BY JNE COURIER [JAKARTA]
	)
	[3] => stdClass Object
	(
		[date] => 19-07-2019 21:29
		[desc] => RECEIVED AT SORTING CENTER [JAKARTA]
	)
	[4] => stdClass Object
	(
		[date] => 19-07-2019 21:50
		[desc] => PROCESSED AT SORTING CENTER [JAKARTA]
	)
	[5] => stdClass Object
	(
		[date] => 19-07-2019 23:33
		[desc] => DEPARTED FROM TRANSIT [GATEWAY JAKARTA]
	)
	[6] => stdClass Object
	(
		[date] => 19-07-2019 23:40
		[desc] => RECEIVED AT ORIGIN GATEWAY [GATEWAY JAKARTA]
	)
	[7] => stdClass Object
	(
		[date] => 20-07-2019 23:08
		[desc] => RECEIVED AT ORIGIN GATEWAY [JAKARTA]
	)
	[8] => stdClass Object
	(
		[date] => 20-07-2019 23:39
		[desc] => DEPARTED FROM TRANSIT [SURABAYA GATEWAY,SGD]
	)
	[9] => stdClass Object
	(
		[date] => 21-07-2019 00:32
		[desc] => RECEIVED AT WAREHOUSE [MALANG]
	)
	[10] => stdClass Object
	(
		[date] => 21-07-2019 13:24
		[desc] => SHIPMENT FORWARDED TO DESTINATION [WONOSARI, KAB.MALANG]
	)
	[11] => stdClass Object
	(
		[date] => 23-07-2019 09:04
		[desc] => WITH DELIVERY COURIER [MALANG]
	)
	[12] => stdClass Object
	(
		[date] => 23-07-2019 10:34
		[desc] => DELIVERED TO [XXXXXXXX | 23-07-2019 10:34 | MALANG ]
	)
)

Mudah-mudahan tulisan ini berguna bagi kalian semua terutama saya pribadi. Jika kalian masih bingung, silahkan ditanyakan melalui kolom komentar, contact us atau bisa langsung ditanyakan ke sosmed penulis (khusus buat yg tau sosmed penulis).
Atau yang ingin berbagi tips, cara atau yang lainnya dan ingin di tampilkan di blog ini juga silahkan. Gratis kok gak di pungut biaya. Mari kita budayakan menulis.
Jika kalian menyukai artikel-artikel dari teknew.web.id silahkan like/subscribe blog ini atau anda juga bisa share/comment, agar penulis tetap bersemangat untuk berbagi pengetahuan melalui sebuah tulisan-tulisan yang agak kacau ini.. hhehe
Best Regard
Zick Keen

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.