Menghitung dan menghapus nilai duplikat pada array

alfa6661
- July 09, 2015
0 (0 votes)
Rate :
Cara menghitung dan menghapus nilai yang sama pada sebuah array dengan menggunakan PHP

Dalam kasus ini misalkan kita memiliki array yang sangat banyak / panjang, dan didalamnya terdapat beberapa item yang memiliki nilai yang sama / duplikat. Kita ingin mencari nilai yang duplikat dan menghapusnya.

Sebagai contoh kita memiliki array seperti ini :

$array = array(
	'honda',
	'bmw',
	'mazda',
	'honda',
	'mazda',
	'mazda',
	'honda',
	'bmw',
	'jeep',
	'lexus',
	'lotus',
	'toyota',
	'mazda',
	'jeep',
	'honda',
	'jeep',
);

Pada array diatas, bisa kita lihat ada beberapa nilai yang sama. Kita mungkin perlu untuk menghapusnya atau menghitung jumlah item yang duplikat. Hal ini dapat dilakukan dengan menggunakan fungsi array_count_values

$count_values = array_count_values($array);

Nilai variable $count_values akan mengembalikan nilai array sebagai berikut :

Array
(
    [honda] => 4
    [bmw] => 2
    [mazda] => 4
    [jeep] => 3
    [lexus] => 1
    [lotus] => 1
    [toyota] => 1
)

Kita juga bisa memfilter hasil dari fungsi array_count_values agar menampilkan item yang duplikat saja. Hal ini bisa dilakukan dengan menggunakan fungsi array_filter.

function findDuplicates($count) {
	return $count > 1;
}

$duplicates = array_filter(array_count_values($array), "findDuplicates");

variable $duplicates akan menghasilkan nilai array dengan item yang duplikat.

Array
(
    [honda] => 4
    [bmw] => 2
    [mazda] => 4
    [jeep] => 3
)

Untuk menghapus nilai duplikat pada sebuah array, kita bisa menggunakan fungsi array_unique.

$clear_array = array_unique($array);

Variable $clear_array akan mengembalikan nilai array tanpa item yang duplikat.

Array
(
    [0] => honda
    [1] => bmw
    [2] => mazda
    [3] => jeep
    [4] => lexus
    [5] => lotus
    [6] => toyota
)

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article