PHP dizi birleştirme ve dizi parçalama işlemi yapıp ayrı diziler oluşturma uygulamalarını hazır PHP dizi fonksiyonları ile yapabiliriz. Bu konuları bu yazıda ayrıntılı olarak işleyeceğiz.
PHP array_merge()
fonksiyonu
Array_merge fonksiyonu birden fazla diziyi birleştirip tek bir dizi haline getirir. Dizi birleştirme işlemi sırasında yeni oluşturulacak dizinin eleman sırası, array_merge fonksiyonu içerisine parametre olarak eklenen dizi değerlerinin sırasıyla orantılıdır. PHP dizi birleştirme işlemini için kullanılabilen array_merge fonksiyonu kullanımı aşağıdaki gibidir.
$araclar = array(
'Bisiklet',
'Motorsiklet',
'Otomobil',
'Tren',
'Uçak'
);
$sirketler = array(
'Google',
'Microsoft',
'Tesla'
);
$afrika = array(
'Mısır',
'Nijerya',
'Tunus',
'Libya'
);
$diziler = array_merge($araclar,$sirketler,$afrika);
print_r($diziler);
/*
--çıktı--
Array (
[0] => Bisiklet
[1] => Motorsiklet
[2] => Otomobil
[3] => Tren
[4] => Uçak
[5] => Google
[6] => Microsoft
[7] => Tesla
[8] => Mısır
[9] => Nijerya
[10] => Tunus
[11] => Libya
)
*/
PHP array_merge_recursive()
fonksiyonu
Array_merge fonksiyonunda olduğu gibi PHP array birleştirme işlemini gerçekleştirir. Array_merge fonksiyonu ile dizileri birleştirirken aynı anahtarlara sahip olan elemanlar olur ise sadece en son eklenen dizinin elemanı birleştirme işlemi gerçekleşir. Ancak array_merge_recursive fonksiyonu ile eleman kaybı yaşanmaksızın bütün elemanlar eklenir. Mesela ‘ikinci’ isminde indise sahip 2 eleman var ise bu indis referanslı bir dizi oluşturulur ve elemanlar bu dizi içerisinde saklanır. PHP array_merge_recursive fonksiyonu kullanımı aşağıdaki gibidir.
$ulkeler = array(
'birinci' => 'Atlantik',
'ikinci' => 'Hint'
);
$ulkeler2 = array(
'ikinci' => 'Pasifik',
'ucuncu' => 'ccc'
);
$diziler = array_merge_recursive($ulkeler,$ulkeler2);
print_r($diziler);
/*
--çıktı--
Array (
[birinci] => Atlantik
[ikinci] => Array ( [0] => Hint [1] => Pasifik )
[ucuncu] => ccc )
*/
PHP array_combine()
fonksiyonu
PHP array birleştirme işlemini anahtar – değer ilişkisine göre yapan fonksiyondur. 2 parametre ile kullanılır. İlk parametreye birleştirilerek yeniden oluşacak olan dizinin anahtar kelimelerinin atanacağı dizi değeri, ikinci parametreye ise bu anahtarların eleman değerlerinin olduğu dizi değeri. Yani birleşerek tek bir dizi haline gelecek olan dizilerde ilk dizi indisleri, ikinci dizi bu indislerin değerleri olacaktır. PHP dizi birleştirme işlemini sağlayan fonksiyonlardan birisi olan array_combine fonksiyonu kullanımı aşağıdaki gibidir.
$anahtarlar = array('a',2,'c');
$veriler = array(
'Van Gölü',
'Tuz Gölü',
'Beyşehir gölü'
);
$yeni_dizi = array_combine($anahtarlar,$veriler);
print_r($yeni_dizi);
/*
--çıktı--
Array (
[a] => Van Gölü
[2] => Tuz Gölü
[c] => Beyşehir gölü
)
*/
PHP array_slice()
fonksiyonu
PHP dizi parçalama işlemini yerine getiren, istenilen sıra aralığında elemanları diziden ayırmak için kullanılan fonksiyondur. 4 parametre ile kullanılır. İlk parametre dizi değeri, ikinci parametre kaçıncı elemandan itibaren başlanacağı, üçüncü parametre diziden kaç eleman çekileceği, dördüncü parametre ise indislerin, anahtarların muhafaza edilip edilmeyeceğini belirten “true” yada “false” değerleri. Varsayılan olarak false değeri atanmıştır ve 4. Parametrenin kullanılması zorunlu değildir. PHP dizi parçalama işlemi yapan array_slice fonksiyonu kullanımı aşağıdaki gibidir.
$dizi = array(
'PHP',
'C#',
'ASPNET',
'PHOTOSHOP',
'HTML5',
'CSS3',
'JS',
'JAVA',
'MYSQL',
'MSSQL',
'MVC',
'OOP'
);
$yeni_dizi = array_slice($dizi,4,5);
print_r($yeni_dizi);
/*
--çıktı--
Array (
[0] => HTML5
[1] => CSS3
[2] => JS
[3] => JAVA
[4] => MYSQL
)
*/
$yeni_dizi = array_slice($dizi,4,5,true);
print_r($yeni_dizi);
/*
--çıktı--
Array (
[4] => HTML5
[5] => CSS3
[6] => JS
[7] => JAVA
[8] => MYSQL
)
*/