• Şuradasınız
  • Anasayfa
  • PHP
  • PHP : Dizi Değişkenler ve Dizi Fonksiyonları

PHP : Dizi Değişkenler ve Dizi Fonksiyonları

Daha önceki yazımda değişkenler, veri tipleri ve bu iki yapıyla ilgili olan fonksiyonları içeren bir döküman oluşturmaya çalışmıştım. Bu yazıda ise programlamada çok önemli bir yer tutan, dizilerden ve dizilerle ile ilgili çok kullanılan fonksiyonlardan bahsetmeye çalışacağım. Yazıyı oluşturan başlıklar şu şekilde;

  • Dizilerle ilgili genel bilgiler
  • Dizilerde anahtar-değer mantığı
  • İç içe diziler
  • Genel amaçlı dizi fonksiyonları

Dizilerle ilgili genel bilgiler

Dizi değişkenler, benzer verileri veya birbirleriyle ilişkili verileri bir arada tutmak için düşünülmüş bir değişken türüdür. Programlama yaparken programcıya büyük avantaj sağlarlar. Aşağıdaki gibi tanımlanırlar;

$dizi = array("Sayısal","Sözel","Eşit Ağırlık");

Programlama dillerinin birçoğunda dizi tanımlanırken; dizinin boyutu, kaç elemanlı olacağı da belirtilir. Fakat PHP de boyutu belirtmenize gerek yoktur, PHP diğer dillere göre bu konuda daha esnek bir dildir.

Yukarıdaki dizinin herhangi bir elemanına erişmek için şu şekilde bir yol izleyebilirsiniz;

echo $dizi[0];
echo $dizi[1];

Diziye yeni bir eleman eklemek için aşağıdaki gibi bir kod yazabilirsiniz; dizinin ilk elemanının sıfırıncı eleman olduğunu söylersek, dizi[2] “Yabancı Dil” değerini döndürecektir.

$dizi = array("Sayısal","Sözel","Eşit Ağırlık");
$dizi[] = "Yabancı Dil";
echo $dizi[3];

Dizilerde Anahtar – Değer mantığı

Dizilerde okunurluğu/anlaşılırlığı artırmak için veya gerektiği yerde kolaylık sağlaması için her elemanı temsil eden bir anahtar kullanılabilir.

$dizi = array(
    "ad" => "Cem",
    "soyad" => "Demir",
    "dogum" => 1991
);

Dizi elemanlarına ulaşırken, o elemanın anahtarını veya elemanın sırasını kullanabilirsiniz; aşağıdaki iki komut da aynı çıktıyı verecektir.

echo $dizi["soyad"];
echo $dizi[1];

Tüm dizi elemanlarını anahtarlarıyla beraber print_r komutu ile listeleyebilirsiniz;

print_r($dizi);

Tüm elemanları bir foreach döngüsü ile de listeleyebilirsiniz;

foreach($dizi as $deger => $anahtar)
    echo $deger . " - " . $anahtar . "<br/>";

İç içe – Çok boyutlu diziler

Dizi içinde başka bir dizi kullanarak çok boyutlu bir yapı oluşturmanız da mümkün.

$dizi = array(
    array(2011,2012,2013),
    array("Ocak", "Şubat", "Nisan"),
    array("Pazartesi", "Salı", "Çarşamba")
);
echo $dizi[2][1] . " - " . $dizi[1][2] . " - " . $dizi[1][0];

Yukarıdaki kod ekrana “2012 – Nisan – Pazartesi” yazdıracaktır.

Anahtar-değer mantığını çok boyutlu dizilerde de kullanabilirsiniz;

$dizi = array(
    "yil" => array(2011,2012,2013),
    "ay"  => array("Ocak", "Şubat", "Nisan"),
    "gun" => array("Pazartesi", "Salı", "Çarşamba")
);
echo $dizi[yil][1] . " - " . $dizi[ay][2] . " - " . $dizi[gun][0];

Dizi değişkenlerle ilgili genel olarak yazacaklarım bu kadar. Biraz da dizi fonksiyonlarına bakalım.

Genel amaçlı dizi fonksiyonları

Bu başlık altında genel amaçlı, çok kullanılan birkaç dizi fonksiyonunu not edeceğim.

is_array fonksiyonu, bir değişkenin dizi olup olmadığını kontrol eder ve geriye true ya da false döndürür.

echo is_array($dizi) ? "Bu değişken dizidir" : "Bu değişken dizi değildir";

count fonksiyonu, bir dizinin eleman sayısını döndürür.

$dizi = array("Ali", "Duru", "Bilgisayar Mühendisi");
echo count($dizi);

explode fonksiyonu, bir metni belirtilen bir karakteri referans alarak elemanlara ayırır ve bir dizi haline getirir.

$text = "Lorem ipsum dolor sit amet consectetur adipiscing elit";
$dizi = explode(" ", $text);
foreach($dizi as $deger)
    echo $deger . "<br/>";

implode fonksiyonu, bir dizideki değerleri aralarına istenilen bir karakter koyarak birleştirir. explode fonksiyonunun tersi gibi çalışır.

$dizi = array("Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma");
$text = implode($dizi, " - ");
echo $text;

list fonksiyonu, bir dizideki elemanları ayrı ayrı değişkenlere atamak için kullanılır;

$dizi = array("Ali", "Duru", "Bilgisayar Mühendisi");
list($ad, $soyad, $meslek) = $dizi;
echo $ad . " # " . $soyad . " # " . $meslek;

Normalde bu yazı çok daha uzun olacaktı fakat dizileri ve dizi fonksiyonlarını not etmek için 2 farklı yazı yazmak daha mantıklı olacaktır diye düşünüyorum. Dizilerle ilgili diğer fonksiyonlara bakmak için sizi buraya alabilirim.

Benzer Yazılar

Yorumlar

  • Turgay Özgür , 13 Nisan 2011 - 10:29:42

    Öncelikle paylaşımın için teşekkürler. Yanlız kodlar renkli olmadığı zaman çok okunası olmuyor.Biliyorsun ki her derleyici kodları renkli olarak yazar ve programcı renkli kodlara alışmıştır.

    Tahminimce sayfanın daha hızlı açılması için kod renklendirmeyi ihmal etmişsin.Sana önerim Google Syntax Highlighter eklentisini kullanman.Oldukça hızlı.

    İyi çalışmalar.

    Cevapla
  • Serhat , 07 Mart 2014 - 13:10:27

    Kardeşim Çok Sağol Çok Yerinde Bi Çalışma Olmuş..
    Webde Bu Diziler Hakkında Sadece Dizi Değişken Okutmak ve Ekrana Yazdırmak Yapılmış. Sense Olayı Çok Daha İleri Götürmüşsün.. Emeğine Yüreğine Sağlık.

    Cevapla

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla