Dizi Değişkenlerin Düzenlenmesi
Dizi değişkenlerin daha verimli şekilde kullanılması için PHP bize bir takım araçlar
sağlar. Bunlarla dizi değişkenleri birleştirebiliriz; içinden kesit alabiliriz, sıralayabiliriz veya
bazı elemanlarını silebiliriz. Şimdi kısaca bu işlemleri ele alalım:
Dizileri birleştirme: array_merge()
İki veya daha fazla dizinin bütün elemanlarını birleştirerek, ortaya yeni bir dizi
çıkartır. Örnek:
Kod:
$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika" );
$ikinci_dizi = array ( "Altun" , "Taç" , "Civelek" , "Tabak" );
$yeni_dizi = array_merge ( $birinci_dizi, $ikinci_dizi );
Bu kod ile oluşturulan $yeni_dizi isimli dizi değişkenin hangi elemanlara sahip
olduğunu, şöyle bir kodla görebilirsiniz:
Kod:
foreach ( $yeni_dizi as $yeni_eleman ) { print (" $yeni_eleman <br>"); }
İkinci dizinin bütün elemanları, birinci dizinin elemanlarının arkasına eklenmiş
olmalı. array_merge() işlemi, çok-boyutlu ilişkili dizilere de uygulanabilir; PHP iki dizideki
uyumlu-uyumsuz, yani birinde olan diğerinde olmayan bütün anahtar+değer çiftlerini yeni
dizide de oluştur. (array_merge() işleminden sonra birleştirilen dizilerin değişmeden
kaldığına dikkat edin.)
Dizilere değişken ekleme: array_push()
Bir diziye yeni değişkenler eklemek için, array_push() fonksiyonuna mevcut dizinin
adını ve yeni değerleri yazarız. Örnek:
Kod:
$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika" );
$yeni = array_push ($birinci_dizi, "Altun" , "Taç" , "Civelek" , "Tabak" );
Burada $yeni adlı değişken sadece $birinci_dizi adlı dizinin yeni eleman sayısını
tutar. array_push(), kendisine adını verdiğimiz dizinin içeriğini değiştirir. Yukarıdaki örnekte
içine yeni değerler yazılan dizinin elemanlarını görüntülemek için şöyle bir kod yazabiliriz:
Kod:
print ("\$birinci_dizi adlı dizide $yeni_dizi adet değişken var<br>");
foreach ( $birinci_dizi as $ogrenci ) { print ("$ogrenci <br> "); }
Dizinin ilk elemanını silme: array_shift()
Bir dizi-değişkenin ilk elemanını tümüyle silmek için array_shift() fonksiyonunu
kullanırız. Bu fonksiyona sadece birinci elemanı silinecek dizinin adını vermek yeter. Örnek:
Kod:
$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika" );
$silinen = array_shift ($birinci_dizi);
array_shift(), adını verdiğiniz dizinin içeriğini değiştirir; buradaki örnekte, $silinen
adlı değişken dizinin silinen birinci elemanın değerini tutar.
Diziden kesit alma: array_slice()
Bir dizi-değişkenin bütün elemanları yerine bir kesitini kullanmak istiyorsak, bunu
array_slice() fonksiyonu ile yapabiliriz. Bu fonksiyona kesit alınacak dizinin adı, kesitin
başladığı yer ve kaç adet değişken alınacağı argüman olarak verilir. Örnek
Kod:
$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika", "Altun" , "Taç" , "Civelek" , "Tabak");
$kesit = array_slice ($birinci_dizi , 3, 4);
Burada, PHP'ye $kesit adlı yeni dizi değişkene, $birinci_dizi adlı dizinin 3'ncü
değerinden itibaren (3 dahil) dört değeri yerleştirmesini bildiriyoruz. array_slice(), adını
verdiğimiz değişkenin içeriğine dokunmaz; yeni dizi değişken oluşturulur.
Dizileri sıralama: sort() ve rsort()
Bir dizinin içindeki değerleri alfabetik veya küçükten büyüğe doğru sıralamak için
sort() fonksiyonunu kullanırız. Örnek:
Kod:
$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika", "Altun" , "Taç" , "Civelek" , "Tabak");
sort ($birinci_dizi);
PHP, dizideki bütün değerleri A'dan Z'ye sıraya sokacaktır. sort() fonksiyonu dizinin
içeğini değiştirir. Bir diziyi Z'den A'ya veya büyükten küçüğe doğru sıralamak için de
rsort() fonksiyonunu kullanabilirsiniz. (PHP4.0 Türkçe karakterleri tanımıyor.) Bir noktada
dikkatli olmak gerekir: bu fonksiyonu ilişkili (değerlerin anahtarı olarak endeks adı
bulunan) dizide kullanırsanız, PHP, anahtar değerlerini (endeks adlarını) atar, yerine 0'dan
itibaren rakam koyar. Bunu önlemek için, ilişkili dizileri asort() veya ksort() fonksiyonu ile
sıralamak gerekir.
İlişkili dizileri sıralama: asort() ve ksort()
İlişkili dizilerin diğer dizi değişkenlere göre farkı, değerlerinin bir de adı
bulunmasıdır. Değerlerin adlarına anahtar denir. Bir ilişkili diziyi değerlerine göre sıralamak
için asort() fonksiyonu kullanılır. Örnek:
Kod:
$birinci_dizi = array ( ogr_01=>"Özbay", ogr_02=>"Muharrem" , ogr_013>"Hasan" , ogr_04=>"Şahika");
asort ($birinci_dizi);
PHP, bu diziyi değerler itibariyle alfabetik sıraya sokacaktır. Eğer sıranın değere
göre değil de değerlerin anahtarına (burada ogr_01, ogr_02 olan kelimeler) göre
yapılmasını istiyorsak, ksort() fonksiyonunu kullanırız. Örnek:
Kod:
$birinci_dizi = array ( ogr_01=>"Özbay", ogr_02=>"Muharrem" , ogr_013>"Hasan" , ogr_04=>"Şahika");
ksort ($birinci_dizi)
PHP, şimdi bu diziyi anahtarlara göre alfabetik sıraya sokacaktır.