*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