alexa  Menu
phpkonf

array_diff() ve array_merge() dizi fonksiyonları kullanımı

  31.03.2020 ,   yorum yapılmadı ,   2.605 kez okundu.

Facebook gruplarında birçok kez sorulduğunu gördüğüm için array_diff() fonksiyonunun kullanım şeklini paylaşmak istiyorum. Aslında daha detaylı php dersleri ekleyeceğim fakat böyle zamanım oldukca kısa da olsa paylaşmanın bir zararı olmaz herhalde 🙂

Diyelim elinizde iki dizi var.

$array1 = array(1, 2, 3, 4,6);
$array2 = array(1, 3,7);

Bu dizilerde tekrar etmeyen değerleri bulmanız gerekiyorsa array_diff() fonksiyonunu kullanabilirsiniz. Kullanım şekli aslında array_diff(array1, array2, array3...) şeklindedir.

array_diff($array1, $array2)

Yukarıdaki şekilde tekrar etmeyen değerleri almış olursunuz. Fakat burada dikkat edilmesi gerek bir husus var. birinci dizide bulunan değerlerden ikinci dizide tekrar etmeyenleri bulacaktır. İkinci dizideki tekrar etmeyen değerleri vermeyecektir. Yani sonuç şöyle olacak (2,4,6):

$array1 = array(1, 2, 3, 4,6);
$array2 = array(1, 3,7);

print_r(array_diff($array1, $array2));

//Sonuç: Array ( [1] => 2 [3] => 4 [4] => 6 )

Gördüğünüz gibi ikinci dizideki tekrar etmeyen 7 değerini sonuç olarak göstermedi. 7 değerini almak için şu şekilde kullanmak gerekiyor:

$array1 = array(1, 2, 3, 4,6);
$array2 = array(1, 3, 7);

print_r(array_diff($array2, $array1));

//Sonuç: Array ( [2] => 7 )

Bu sefer de sadece 7 değerini alabildik. Her iki dizideki tekrar etmeyen değerleri almak için aldığımız sonuçları birleştirmemiz gerekiyor. Bunun için de array_merge() fonksiyonunu kullanabiliriz.

Yani aslında kodumuzu şöyle yazabiliriz:

$array1 = array(1, 2, 3, 4,6);
$array2 = array(1, 3, 7);

$output = array_merge(array_diff($array1, $array2), array_diff($array2, $array1));

print_r($output);

//Sonuç: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 7 )

Kodumuzu bu şekilde yazdığımızda tam olarak istediğimiz sonucu yani 2,4,6,7 değerlerini almış olduk.

Yorum yapın..

isim yerine gerçek isim ve soyisim yazılmadan yapılan yorumlar kesinlikle onaylanmıyor bilginiz olsun.


The reCAPTCHA verification period has expired. Please reload the page.


%d blogcu bunu beğendi: