26 Şubat 2014 Çarşamba

PHP Arrays - Diziler

*04.10.2009 tarihinde İstanbul'da bir bilgisayar dershanesinde verdiğim PHP ile Web Programlama derslerinin notlarıdır. Faydalı olması dileği ile.

DİZİLER

  • Bu konudan önce işlem yaptığımız tüm değişkenler scaler tipte yani tekil değişkenlerdir.
  • Scaler değişken; bir değerin tutulduğu adlandırılmış bir konumdur.
  • Dizi değişken ise, bir değerler grubunu depolamak için kullanılan yerdir.


Her dizide en az bir index ve bir değer çifti bulunmak zorundadır.

SAYISAL İNDEXLİ DİZİLER

Sayısal indexli diziler birçok programlama dilinde desteklenir. PHP’de sayısal indexli diziler VARSAYILAN olarak 0 ile başlar. Ama bu değeri değiştirmememiz mümkündür.

Örnek bir dizi şu şekilde oluşturulabilir:
$dizi=Array(‘Mart’,’Nisan’,’Mayıs’);
*Önemli bir not: Array anahtar kelimesi de tıpkı ECHO anahtar kelimesi gibi, bir fonksiyon değil; bir dil yapısıdır.

RANGE
Otomatik olarak sıralı diziler oluşturmamızı sağlayan fonksiyondur.
Örnek : $dizi=range(1,0) //1’den 10’a kadar tüm sayıları kapsayan bir sayı kümesi dizisi
$dizi=range(1,10,2) //1’den 10’a kadar tüm tek sayılardan oluşan bir sayı kümesi dizisi
$dizi=range(‘a’,’z’) // a’dan z’ye tüm harfleri kapsayan bir alfabetik küme dizisi
$dizi=range(10,1,-1); // 10’dan 1’e kadar tüm elemanları 1 eksilterek sıralar.


DİZİ İÇERİĞİNE ERİŞİM
Dizi içeriğine, elemanın index numarası ile erişebiliriz.
Örnek : $dizi[0] //Dizinin ilk elemanına erişebiliriz.
*C,C++,JavaScript ve C# dillerinde varsayılan indexleme olarak dzinin ilk elemanı 0’ıncı eleman olarak kabul edilmektedir.
DİZİ ELEMANLARINA ERİŞMEK İÇİN DÖNGÜLERDEN FAYDALANMAK
Örnek: $dizi=array(‘elma’,’armut’,’ayva’,’karpuz’);
For($i=0;$i<4;$i++)
{
Echo $dizi[i];

}
Ya da

Foreach($dizi as $eleman)
{
Echo “$eleman”;
}





FARKLI İNDEXLER KULLANAN DİZİLER

Eğer dizi elemanlarına bir index atanmadı ise varsayılan olarak dizi elemanlarının indexi sayısal kabul edilir ve index 0’dan başlar. PHP; her bir değerle istediğimiz anahtar veya indexi ilişkilendirebileceğimiz dizileri de destekler.

Örnek:
$plaka=array(‘istanbul’=>34,’ankara’=>06,’adana’=>01);
Echo $plaka[‘istanbul’] // İstanbul isimli anahtarın değerin yazdıracaktır.

DÖNGÜ KULLANMAK
Foreach($plaka as $il=>$plakano)
{
Echo “$il-$plakano</br>”;
}

EACH() Fonksiyonu

Dizi boyunca tekrarlanabilecek ve dizi elemanlarını anahtar-değer çiftleriyle bir scaler değişkene aktarabilecek bir komuttur.
While($elemen=each($plaka))
{
Echo “$eleman[‘key’];
Echo “$eleman[‘value’];

Veya
Echo “eleman[0]”;
Echo “eleman[1]”;
}


LİST() Fonksiyonu

LİST; Diziyi belirli sayıdaki değerlere bölmek için kullanılır.

Örnek :
List($il,$plakano)=each($plaka);

**** Each kullanırken dikkat edilecek önemli bir nokta dizi geçerli elemanı izleyerek ilerler. Eğer diziyi aynı program içerisinde iki kere kullanmak istiyorsak, Each imini dizinin ilk elemanına döndürmemiz gerekmektedir. Bunun için reset() fonksiyonunu kullanarak; Each imini dizinin ilk elemanına döndürürüz.








DİZİ OPERATÖRLERİ

+
Birleşim
$a+$b
$a ve $b dizilerinin birleşimidir. $b dizisi, $a dizisinin sonuna eklenir. Çakışan anahtarler eklenmek
==
Eşitlik
$a==$b
$a ve $b aynı elemanlara sahipse true değeri döndürülür.
===
Denklik
$a===$b
$a ve $b aynı elemanlara aynı sıralama ile sahipse true değeri döndürülür.
!=
Eşitsizlik
$a!=$b
$a ve $b aynı elemanları içermiyorsa true sonucunu döndürür.
<>
Eşitsizlik
$a<>$b
!= ile aynıdır.
!==
Denksizlik
$a!==$b
$a ve $b aynı elemanlara aynı sıra ile sahip değilse true döndürülür.
























ÇOK BOYUTLU DİZİLER

Dizilerin basit birer anahtar ve değer grubu olmaları gerekmez. Dizideki her konum başka bir diziyi barındırabilir. Böylelikle, iki boyutlu bir dizi oluşturabiliriz.İki boyutlu diziyi satır ve sutunları olan bir tablo gibi düşünebilirsiniz.

IL
PLAKA
KISALTMA
İstanbul
34
IST
Ankara
06
ANK
Adana
01
ADN





$iller=Array(array(‘istanbul’,’34’,’ist’),
Array(‘ankara’,’06’,’ANK’,
Array(‘Adana’,’01’,’ADN’));

$iller dizimiz artık üç eleman barındırıyor.

Tek boyutlu dizilerde, dizide belirli bir veriye erişmek için ilgili dizinin adına ve elemanın anahtar kelimesine ihtiyacımız oldğunu hatırlayın. İki boyutlu bir dizi de buna benzer, ancak her elemanın iki anahtarı vardır. Bir satır ve bir sutun.
Örnek: $iller[0][0] // İstanbul
$iller[1][0] // Ankara
$iller[2][0] // Adana
IL
PLAKA
KISALTMA
0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2





Eğer bu tür anahtar numaraları ile değil de sutun adları ile çalışmak istiyorsak :

$iller=array(array(‘il’=>’istanbul’,
plaka’=>’34’,
kisaltma’=>’ist’),
Array(‘il’=>’ankara’,
plaka’=>’06’,
kisaltma’=>’ANK’),
Array(‘il’=>’Adana’,
plaka’=>’01’,
kisaltma’=>’ADN’));

$iller[0][‘il’]; // İstanbul
$iller[1][‘il’]; // Ankara
$iller[2][‘il’]; // Adana


DİZİLERDE SIRALAMA

Sort() -> Dizi elemanlarını küçükten büyüğe sıralar.
  • Sort: Büyük-küçük harf duyarlıdır.
Büyük harfler küçük harflerden önce gelir.

Asort() -> Dizide değere göre sıralama yapar,küçükten büyüğe sıralar; anahtar dizilimine dokunmaz.
Ksort() -> Dizide anahtara göre sıralama yapar. Küçükten büyüğe
Rsort -> Dizi elemanları büyükten küçüğe doğru sıralanır.
REVERSE, yani tersine çevirmek kelimesinden anımsanabilir.





EXTRACT

Dizileri skaler yani tekil değişkenlere çevirmemize yaramaktadır.
Bu fonksiyonun işlevi, bir diziyi alıp dizideki anahtar kelimelerin adlarıyla yeni değişkenler oluşturmaktır.

Örnek:
$dizi=array
(‘anahtar1’=>’deger1’,
anahtar2’=>’deger2’,
anahtar3’=>’deger3’);

Extract($dizi);


Hiç yorum yok:

Yorum Gönder