PHP

PHP’de Diziler / Array – 3

Daha önceki yazımda sizlere değişkenleri anlatmıştım. Değişkenlerin içerisinde tek değer atayabiliyorduk. Diziler de bir değişken türüdür. Farkı içerisinde birden fazla tipte birden fazla değeri bulundurabiliyor olmasıdır.

Dizi değişkenler, benzer verileri ve birbirleriyle ilişkileri bir arada tutmak için kullanılarak yazılımcılar için büyük bir avantaj sağlar.

Değişkene değer atarken aşağıdaki gibi bir kod parçası yazıyorduk.

 

Dizi Değişkeni Tanımlama

Yukarıdaki örneği bir dizi değişkene atamak için de aşağıdaki gibi bir kod parçası yazıyoruz.

Programlama dillerinin birçoğunda dizi tanımlarken dizinin boyutu ve kaç elemanlı olacağını da belirtmek gerekebiliyor. Ama PHP bu tarz bilgileri belirtmenize gerek yoktur. PHP bu konuda esnek bir dildir. Sizin verdiğiniz değere göre kendisini tür ve boyut olarak otomatik tanımlar.

Bir Dizideki Veriye Erişmek

Yukarıdaki kod parçasında bir yazar dizisi oluşturdum. Bu dizideki verileri ekrana nasıl yazdırabiliriz ona bir bakalım.

[alert style=”green”]Dizilerde bulunan elemanlar siz aksini belirtmediğiniz sürece 0. indisten başlar ve eleman sayısı – 1 e kadar devam eder. Örneğin; 10 elemanlı bir dizi 0. indisten 9. indise kadar veriye sahip olur.[/alert]

Var Olan Bir Diziye Yeni Veri Eklemek

yazar isminde bir dizimiz mevcut, bu diziye yeni bir eleman ekleyelim.

Yeni Eklenen Verileri Ekrana Yazdırma

yazar dizimize yeni veri eklemeden önce 3 elemanımız vardı. Şimdi ise 5 elemanımız var. Son eklediğimiz 2 elemanı ekrana yazdıralım.

Dizilerde Anahtar (Key) – Değer (Value) Mantığı

[alert style=”green”]Dizilerde siz aksini belirtmediğiniz sürece eklediğiniz değerlerin anahtarları 0’dan başlayarak eleman sayısı – 1 şeklinde devam edeceği belirtmiştim.[/alert]

Dizilerde anlaşılırlığı ve okunurluluğu arttırmak için ve kod yazarken kolaylık sağlaması açısından her elemanı/değeri/veriyi/value temsil eden bir anahtar/indis kullanılabilir.

Anahtarları Tanımlı Olan Değerlerinin Çıktısı

Dizinin Tüm Çıktısını Alma

Tüm dizinin değerlerini anahtarlarıyla beraber çıktı almak için print_r komutunu kullanabiliriz.

Bu komutun çıktısı şu şekilde olacaktır.

Array ( [ad] => Fatih [soyad] => Çal [dogum] => 1990 [sehir] => İstanbul )

Burada diziye ait anahtar ve değerleri görebiliyoruz.

Benzer bir çıktıyı da foreach döngüsü ile de alabiliriz.

Dizinin Eleman Sayısı

Bir dizide kaç eleman olduğunu saydırmak için count() fonksiyonunu kullanıyoruz.

Dizileri Sıralama

Dizileri anahtar ve değerlerine göre 2 alanda sıralayabiliriz. Bu işlemleri bazı dizi fonksiyonlarıyla yapabiliyoruz. Bu fonksiyonlar şunlardır.

[one_two_first]
Fonksiyon Adı
[/one_two_first]

[one_two_second]
Fonksiyon Açıklaması
[/one_two_second]

[one_two_first]
sort()
[/one_two_first]

[one_two_second]
Değerlere göre küçükten büyüğe sıralama yapar. Anahtarlarıyla birbirleriyle olan ilişkisini bozar.
[/one_two_second]

[one_two_first]
rsort()
[/one_two_first]

[one_two_second]
Değerlere göre büyükten küçüğe sıralama yapar. Anahtarlarıyla birbirleriyle olan ilişkisini bozar.
[/one_two_second]

[one_two_first]
asort()
[/one_two_first]

[one_two_second]
Değerlere göre küçükten büyüğe sıralama yapar. Anahtarlarıyla birbirleriyle olan ilişkisini bozmaz.
[/one_two_second]

[one_two_first]
arsort()
[/one_two_first]

[one_two_second]
Değerlere göre büyükten küçüğe sıralama yapar. Anahtarlarıyla birbirleriyle olan ilişkisini bozmaz.
[/one_two_second]

[one_two_first]
ksort()
[/one_two_first]

[one_two_second]
Anahtarlara göre küçükten büyüğe sıralar.
[/one_two_second]

[one_two_first]
krsort()
[/one_two_first]

[one_two_second]
Anahtarlara göre büyükten küçüğe sıralar.
[/one_two_second]

Örnek :

Çıktısı :

Array ( [0] => Gökhan [1] => Muhammed [2] => Mürşid [3] => Serhat )

[alert style=”yellow”]Burada dikkat etmenizi istediğim bir nokta var. sort() fonksiyonu için değerlerin anahtarıyla olan ilgisini bozar demiştim. Bizim oluşturduğumuz isimler dizisinde Serhat değerinin anahtarı 0 iken sort işleminden sonra 3 oldu. Bu şu demek oluyor. Artık ilk oluşturduğumuz isimler dizisi yerine sort() fonksiyonunun sıraladığı yeni isimler dizimiz var.[/alert]

Kocaeli Üniversitesi Teknik Eğitim Fakültesi’nden Bilgisayar Öğretmenliği mezunu olan Fatih Çal, bilişim sektöründe 10 seneyi aşkın tecrübeye sahiptir. Başta web projeleri olmak üzere çeşitli projelerde ve kurumlarda çalışmıştır. Şuan Uluslararası Genç Derneği’nde Başkan Yardımcısı, Uluslararası Bilişim Teknolojileri Derneği’nde Yönetim Kurulu Üyesi ve İstanbul Medeniyet Üniversitesi Bilgi İşlem Daire Başkanlığında Sistem Yönetimi ve Yazılım Koordinatörü olarak görev almaktadır.