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.

<?php

$yazar1 = "Fatih Çal";
$yazar2 = "Serhat Altınevlek";
$yazar3 = "Muhammed Özdemir";

?>

 

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.

<?php

$yazar = Array ("Fatih Çal" , "Serhat Altınevlek" , "Muhammed Özdemir");
// burada $yazar değişkenini diziye çevirerek içerisinde 3 farklı değer atadık.

?>

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.

<?php

echo $yazar[0];
// burada yazar dizindeki verilerden 0. indisteki elemanı ekrana yazdırdık.
// ekran çıktısı : Fatih Çal

echo $yazar[1];
// burada yazar dizindeki verilerden 1. indisteki elemanı ekrana yazdırdık.
// ekran çıktısı : Serhat Altınevlek

echo $yazar[2];
// burada yazar dizindeki verilerden 2. indisteki elemanı ekrana yazdırdık.
// ekran çıktısı : Muhammed Özdemir

?>
[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.

<?php

$yazar[] = "Muhammed Tutar";
// mevcut dizimiz 3 elemanlıydı, yeni yazar ekleyerek 4 elemanlı oldu.

$yazar[] = "Gökhan Ünal";
// mevcut dizimiz 4 elemanlıydı, yeni yazar ekleyerek 5 elemanlı oldu.

?>

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.

<?php

echo $yazar[3];
// yazar dizisindeki 4. verimizi ekrana yazdırdık.
// ekran çıktısı : Muhammed Tutar

echo $yazar[4];
// yazar dizisindeki 5. verimizi ekrana yazdırdık.
// ekran çıktısı : Gökhan Ünal

?>

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.

<?php

$musteri = array(
        "ad" => "Fatih",
        "soyad" => "Çal",
        "dogum" => 1990 ,
        "sehir" => "İstanbul",

);

/* bu kod parçasında musteri isimli bir dizi oluşturduk ve kendi belirlediğimiz anahtarlar ile 4 değer ekledik.
*/

?>

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

<?php

echo $musteri["ad"];
// burada musteri dizindeki ad anahtarına sahip değeri ekrana yazdırdık.
// ekran çıktısı : Fatih

echo $musteri["soyad"];
// burada musteri dizindeki ad anahtarına sahip değeri ekrana yazdırdık.
// ekran çıktısı : Çal

?>

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

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

<?php

print_r($musteri);

?>

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.

<?php

foreach($musteri as $anahtar => $deger)

{

echo $anahtar. " - " . $deger . "<br/>";

}

?>

Dizinin Eleman Sayısı

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

<?php

$diller = array("PHP" , "C#" , "C" , "Java");
echo count($renkler);
// ekran çıktısı : 4

?>

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 :

<?php

$isimler = array("Serhat" , "Gökhan" , "Mürşid" , "Muhammed");
sort($isimler);
print_r($isimler);

?>

Çı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]

Yorum Ekle

PHP’de Diziler / Array – 3 | kod5 için bir yanıt yazın X