Dizilerde array_merge() ve array_merge_recursive fonksiyonlarının kullanımları

Dizilerde Array_merge() Ve Array_Merge_Recursive() Fonksiyonlarının Kullanımı
Bu iki dizi metodlarımız birden fazla diziyi tek bir çatı altında toplamak için kullanılmaktadır.Şimdi hemen ilk metodumuz olan array_merge() metodumuzu incelemeye alalım ve hemen ilgili metodumuz ile bir örnek yapalım:
[<?php
$Renkler = array("Mavi","Yeşil","Kırmızı","Turuncu","Sarı");
$Esyalar = array("Masa","Sandalye","Koltuk","Sehpa");
echo "<pre>";
print_r($Renkler);
echo "</pre><br/>";
echo "<pre>";
print_r($Esyalar);
echo "</pre><br/>";
$Birlestir = array_merge($Renkler,$Esyalar);
echo "<pre>";
print_r($Birlestir);
echo "</pre>";
?>]
Yukarıdaki dizide "Renkler" ve "Esyalar" adında iki adet dizimizi önce ekranımıza yazdırdık ardından array_merge() metodumuzu kullanarak iki dizimizi depoyalan değişkenlerimizi metodumuzun içerisine parametre olarak girdik ve ardından metodumuzu depolayan değişkenimizide ekrana yazdırdığımız zaman görüldüğü gibi iki dizimizin elemanları tek bir dizi değişkeni içerisinde depolanmış oldu.Bu metodu kullanırken dikakt etmemiz gereken bir nokta var.Eğer iki dizi içerisindede aynı anahtar değerlerine sahip elemanları birleştirip ve çıktısını aldığımız zaman php her zaman otomatik olarak son elemanı baz alarak ekrana yansıtır ve ilk eleman yok olmuş olur.Fakat bu söylediğimizin geçerli olabilmesi için iki anahtar değerimizinden aynı ve string bir ifade olması gerekir.Eğer aynı anahtara sahip rakam yada sayı olur ise php otomatik olarak kendisi anahtar numarası atar ve hiçbir dizi elemanını diziden çıkartmaz.Şimdi örneğimizde iki dizimizede sayıdan oluşan anahtar değerleri atayalım ve bakalım sonuç ne olacak:
[<?php
$Renkler = array(0=>"Mavi",1=>"Yeşil",2=>"Kırmızı","Turuncu","Sarı");
$Esyalar = array(0=>"Masa",1=>"Sandalye",2=>"Koltuk","Sehpa");
echo "<pre>";
print_r($Renkler);
echo "</pre><br/>";
echo "<pre>";
print_r($Esyalar);
echo "</pre><br/>";
$Birlestir = array_merge($Renkler,$Esyalar);
echo "<pre>";
print_r($Birlestir);
echo "</pre>";
?>]
Yukarıdaki örnekte dizilerimizin ilk üç elemanlarına manuel olarak "1-2-3" anahtar değerlerini verdik ve ekrana çağırdığımızda görüldüğü üzere hiçbir problem olmadan ve hiçbir eleman diziden çıkarılmadan ekrana başarılı bir şekilde yazılmış oldu.Şimdi aynı işlemi sözel yani string birer anahtar atayalım ve neler olacağına bakalım:
[<?php
$Renkler = array("BirinciEleman"=>"Mavi","İkinciEleman"=>"Yeşil","ÜçüncüEleman"=>"Kırmızı","Turuncu","Sarı");
$Esyalar = array("BirinciEleman"=>"Masa","İkinciEleman"=>"Sandalye","ÜçüncüEleman"=>"Koltuk","Sehpa");
echo "<pre>";
print_r($Renkler);
echo "</pre><br/>";
echo "<pre>";
print_r($Esyalar);
echo "</pre><br/>";
$Birlestir = array_merge($Renkler,$Esyalar);
echo "<pre>";
print_r($Birlestir);
echo "</pre>";
?>]
Yukarıdaki örnekte görüldüğü üzere üç adet iki dizimizdede aynı olacak şekilde anahtar oluşturduk.Dizi birleştirme esnasında php otomatik olarak iki dizi elemanlarının anahtar değerlerini karşılaştırma yapıyor ve eşleşen anahtarların sonuncularını geçerli kılarak ilk elemanları diziden atıyor.Görüldüğü üzere birleştirilen dizide ilk dizideki "Mavi,Yeşil ve Kırmızı" renkleri yer almıyor.Çünkü açıklmadada söylediğimiz gibi eğer iki dizidede aynı anahtar kelimeleri kullanılyorsa her daim son dizinin elemanları geçerli kılınıp, ilk dizinin elemanları yok sayılır.Sadece string ve ortak anahtar kelimeleri olduğu zaman geçerlidir bu durum.Şimdi bir diğer metodumuz olan array_merge_recursive() metodu hakkında bir örnek yapalım:
[<?php
$Renkler = array("Mavi","Yeşil","Kırmızı","Turuncu","Sarı");
$Esyalar = array("Masa","Sandalye","Koltuk","Sehpa");
echo "<pre>";
print_r($Renkler);
echo "</pre><br/>";
echo "<pre>";
print_r($Esyalar);
echo "</pre><br/>";
$Birlestir = array_merge_recursive($Renkler,$Esyalar);
echo "<pre>";
print_r($Birlestir);
echo "</pre>";
?>]
Yukarıdaki örnekte görüldüğü üzere array_merge_recursive() metodumuz ile iki adet dizimizi rahat bir şekilde birleştirdik ve ekranımıza sorunsuz bir şekilde yazdırmış olduk.Şimdi dizimize manuel olarak sayısal anahtar değerleri atayalım bakalım sonuç ne olacak:
[<?php
$Renkler = array(0=>"Mavi",1=>"Yeşil",2=>"Kırmızı","Turuncu","Sarı");
$Esyalar = array(0=>"Masa",1=>"Sandalye",2=>"Koltuk","Sehpa");
echo "<pre>";
print_r($Renkler);
echo "</pre><br/>";
echo "<pre>";
print_r($Esyalar);
echo "</pre><br/>";
$Birlestir = array_merge_recursive($Renkler,$Esyalar);
echo "<pre>";
print_r($Birlestir);
echo "</pre>";
?>]
Yukarıdaki örnekte görüldüğü üzere biz manuel olarak sayısal anahtar değerleri girdik ve iki diziyi birleştirirken herhangi bir sorun ile karşılaşmadan iki dizimizi rahat bir şekilde birleştirerek ekranımıza yansıtmış oldu.Şimdi dizi elemanlarımıza string olarak aynı anahtar değerleri girelim ve bakalım sonuç ne olacak:
[<?php
$Renkler = array("BirinciEleman"=>"Mavi","İkinciEleman"=>"Yeşil","ÜçüncüEleman"=>"Kırmızı","Turuncu","Sarı");
$Esyalar = array("BirinciEleman"=>"Masa","İkinciEleman"=>"Sandalye","ÜçüncüEleman"=>"Koltuk","Sehpa");
echo "<pre>";
print_r($Renkler);
echo "</pre><br/>";
echo "<pre>";
print_r($Esyalar);
echo "</pre><br/>";
$Birlestir = array_merge_recursive($Renkler,$Esyalar);
echo "<pre>";
print_r($Birlestir);
echo "</pre>";
?>]
Yukarıdaki örnekte görüldüğü üzere iki dizimizin içerisindede string olarak aynı anahtar değerlerini ekledik ve ekrana çağırdığımızda tüm değerlerimizi ekrana yazıdğımızı görüyoruz.Bir önceki metodumuzda yani array_merge() metodumuzda bu örneği ekrana yazdırdığımızda eşleşen anahtar değerlerine ait elemanların son dizideki elemanları geçerli kılıp ilk dizideki elemanları geçersiz kılmıştı.Burada ise tam tersi olarak hem ilk dizideki elemanlarımızı hemde son dizideki elemanları başarılı bir şekilde ekrana yazmış oldu tek fark dikakat ederseniz aynı anahtar değerine sabit elemanları ekrana yazarkan ortak anahtar değerini bir dizi olarak oluşturuyor ve içerisine aynı anahtara sahip olan elemanları giriyor.Örneğin php "BirnciEleman" adında yeni bir dizi oluşturuyor ve "BirinciEleman" anahtarına sahip tüm elemanları ise altına sırsasıyla otomatikmen oluşturuyor.Array_merge() ve array_merge_recursive() metodlarımızın arasındaki farkı kısaca bu şekilde özetlemiş olduk.
COMMENTS