PHP array_merge_recursive() Kullanımı – PHP Diziler
Merhaba, bu yazımda PHP de array_merge_recursive() fonksiyonunu anlatacak ve örnek yaparak pekiştirmeye çalışacağım. Bir önceki PHP yazımda array_merge() kullanımını anlatmıştım.
array_merge_recursive() fonksiyonu, İki veya daha fazla dizi değişkeni diziler dahil art arda ekleyerek birleştirir ve yeni bir dizi oluşturarak döndürür.
Burada şöyle bir durum var, eklenen dizilerde aynı anahtara sahip elemanlar varsa, sonradan eklenen dizilerin eleman değerleri ilk elemana bir alt dizi olarak art arda ekleniyor. Ayrıca; eğer eklenen değer zaten diziyse fonksiyon bu diziyi önceki dizi ile de birleştiriyor. Sayısal anahtar içeren diziler her zaman sona eklenir.
Örnek olarak;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php // array_merge_recursive() // İki veya daha fazla dizi değişkeni diziler dahil // art arda ekleyerek birleştirir ve yeni bir dizi oluşturarak döndürür. $dizi1 = Array("adsoyad" => Array("ad" => "ali","soyad" => "veli"), "parkarenk" => Array("tercih" => "mavi", "yeşil")); $dizi2 = Array("kırklareli","emret","komutanım","diyeceksiniz", "parkarenk" => Array("tercih" => "beyaz", "kahverengi")); $dizi3 = Array("adsoyad" => Array("ad" => "şahin","soyad" => "çetinkaya")); echo "Dizi 1 : <br>"; print_r($dizi1); echo "<br>"; echo "Dizi 2 : <br>"; print_r($dizi2); echo "<br>"; echo "Dizi 3 : <br>"; print_r($dizi3); echo "<br><br>"; // $dizi1, $dizi2 ve $dizi3 dizilerini $birlestir değişkenine depoladık. echo "Birleştikten sonra çıktımız: <br>"; $birlestir = array_merge_recursive($dizi1, $dizi2, $dizi3); echo "<pre>"; print_r($birlestir); echo "</pre>"; ?> |
Çıktısı;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
Dizi 1 : Array ( [adsoyad] => Array ( [ad] => ali [soyad] => veli ) [parkarenk] => Array ( [tercih] => mavi [0] => yeşil ) ) Dizi 2 : Array ( [0] => kırklareli [1] => emret [2] => komutanım [3] => diyeceksiniz [parkarenk] => Array ( [tercih] => beyaz [0] => kahverengi ) ) Dizi 3 : Array ( [adsoyad] => Array ( [ad] => şahin [soyad] => çetinkaya ) ) Birleştikten sonra çıktımız: Array ( [adsoyad] => Array ( [ad] => Array ( [0] => ali [1] => şahin ) [soyad] => Array ( [0] => veli [1] => çetinkaya ) ) [parkarenk] => Array ( [tercih] => Array ( [0] => mavi [1] => beyaz ) [0] => yeşil [1] => kahverengi ) [0] => kırklareli [1] => emret [2] => komutanım [3] => diyeceksiniz ) |
şeklinde olacaktır. Örnekte de gördüğünüz gibi aynı anahtara sahip elemanları ilk elemana alt dizi değeri olarak ekledi. Sayısal anahtar içeren değerler de sona eklendi. Çıktıyı okunabilir olması açısından <pre> tagları içerisinde yazdırdım. Sayfayı biraz uzattı ama en azından daha anlaşılır olduğunu düşünüyorum.
Bu tür fonksiyonlarda bol bol uygulama yapmanızı öneririm diğer türlü anlamanız da öğrenip kavramanız da zorlaşacaktır. PHP de array_merge_recursive() kullanımı bu şekilde. Bir sonraki yazıda görüşmek üzere.