Php İki diziyi(array) birleştirmek

Php ‘de iki adet diziyi birleştirmek için genelde array_merge() kullanılır. Örneğin, rakamları içeren bir dizimiz var. Bu dizimizi harfler olan dizimizle birleştirmek istiyoruz.

$rakamlar= [“1″,”2″,”3″,”4″,”5”];

$harfler= [“a”,”b”,”c”,”d”,”e”];

$hepsi= array_merge($rakamlar, $harfler);

print_r($hepsi);

//Çıktısı
—————————

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => a [6] => b [7] => c [8] => d [9] => e )

Gördüğünüz gibi iki arrayı birleştirdi, eğer çift katmanlı bir array olsaydı fark gözetmeksizin gene array_merge işlemi yapacaktır.

Şimdi size çok rastlanmayan bir durumdan bahsedeceğim. İki ayrı dizimiz var ve bu dizimiz aynı indislere sahip fakat farklı veriler içeriyor. Bu iki diziyi array_merge ile birleştirmek istediğimizde sıralı bir birleşim olacak ve her eleman için yeni bir indis tanımlayacaktır.

Bizim istediğimiz ise iki ayrı dizideki indisler yani key dediğimiz belirleyicilerin değişmeden kendine ait verilerini bir arada toplayarak birleştirmek istiyoruz. Bunu için for döngüsü kullanarak uzun uzun yapabiliriz. Ama biz bu tarz durumlar için hazırlanmış array_replace_recursive fonksiyonunu kullanacağız.

 

$dizi1= [
	"ahmet" => [
		"22" => "Bisiklet",
		"54" => "Saat",
	],
	"mehmet" => [
		"28" => "Gözlük",
	],
	"ayse" => [
		"12" => "Kolye"
	],
	"fatma" => [
		"66" => "Şal"
	]
];

$dizi2= [
	"ahmet" => [
		"44" => "Gömlek",
	],
	"mehmet" => [
		"76" => "Kazak",
	],
	"ayse" => [
		"29" => "Etek"
	],
	"fatma" => [
		"18" => "Tişört"
	]
];


$birlestir = array_replace_recursive($dizi1, $dizi2);

print_r($birlestir);

//Çıktımız
—————

Array
(
    [ahmet] => Array
        (
            [22] => Bisiklet
            [54] => Saat
            [44] => Gömlek
        )

    [mehmet] => Array
        (
            [28] => Gözlük
            [76] => Kazak
        )

    [ayse] => Array
        (
            [12] => Kolye
            [29] => Etek
        )

    [fatma] => Array
        (
            [66] => Şal
            [18] => Tişört
        )

)

Gördüğünüz gibi iki arraydeki indislerin alt indislerini birbiriyle birleştirdi. Bu tarz durumlarla karşılaştığınızda sizi hızlandıracaktır. İyi kodlamalar.



Bu yazı 31 kez görüntülendi.


Bir Cevap Yazın