Array Kullanımı ve Fonksiyonları - PHP
Bilgi, PHP, Webmaster kategorisine 25 Nisan 2009 tarihinde yazılmış.
Uzun süre ara verdiğim php derslerine devam etmeye karar verdim. Bu derste basitçe php 'de array kullanımını ve array ile birlikte sıklıkla kullandığımız fonksiyonları anlatacağım.
- Konu başlıkları şöyle;
- Dizi oluşturma, eleman ekleme ve silme
- Foreach() ile dizi listeleme
- Dizi sıralama
- sort(); - Diziyi elemanların değerlerine göre alfabetik sıralama
- rsort(); - Diziyi elemanların değerlerine göre ters alfabetik sıralama
- asort(); - Diziyi anahtarlarını değiştirmeden alfabetik sıralama
- arsort(); - Diziyi anahtarlarını değiştirmeden alfabetik sıralama
- ksort(); - Diziyi elemanların anahtar değerlerine göre artan sıralama
- krsort(); - Diziyi elemanların anahtar değerlerine göre azalan sıralama
- count(); - Dizideki eleman sayısını öğrenme
- array_sum(); - Dizideki sayısal elemanların toplamını öğrenme
- array_merge(); - Dizileri birleştirme
- array_count_values(); - Dizide aynı değere sahip kaç eleman olduğunu bulma
- Yazıda adı geçen diğer fonksiyonlar
- print_r(); - Diziyi yapısı ile birlikte yazdırma
- unset(); - Diziden eleman kaldırma
Yeni başlayanlar pek kullanacak alan bulamayabilirler ama komplike sistemlerin vazgeçilmezidir diziler. Array (yani Türkçe'si ile dizi) elemanları gruplandırmaya yararlar. Fazla uzatmadan örnek üzerinden anlatacağım. Unutmayın ki örneklerin çalışması için sayfa başına ve sonuna php taglarını eklememiz gerekir. (<? kodlar ?> gibi)
Yukarıdaki örnekte üç elemanlı bir dizi oluşturduk. Dizimiz $diziadi değişkeni üstünde. Diziden herhangi bir elemanı yazdırmak için aşağıdaki kodları kullanıyoruz.
Köşeli parantez içine yazdıklarımız elemanın dizideki anahtarıdır. Anahtar kelimesini daha sonra sıralamalarda kullanacağımız için buraya dikkatinizi çekmek istedim. Bu anahtarları kendiniz belirlediğiniz zaman sayısal değerler yerine metinsel bir değer de girebilirsiniz, fakat bu değeri tırnak içine almayı unutmayın. İlk elemanı çağırmak için sıfır yazdık çünkü dizilerde saymaya birden değil sıfırdan başlanır.
Diziye yeni elementler eklemek için aşağıdaki kodları kullanırız.
-
$diziadi[]='element adı 4';
-
$diziadi[]='element adı 5';
-
$degisken='element adı yada istediğiniz bir değer';
-
$diziadi[]=$degisken;
Bu kodu çalıştırdığınızda $diziadi dizisine üç elementimiz daha eklenir. Anahtarlar (çağırmak için kullandığımız sayılar) otomatikman sıradaki boş numara olarak belirlenir. Burada bir değişkeni de diziye kattık. Artık değişkenin sahip olduğu değer de dizimizin bir elemanı. Değişken tanımlama ve kullanma ile ilgili bilgiyi buraya tıklayarak daha önceki yazımdan alabilirsiniz.
unset() ile eleman silmek
Diziden kaldırmak istediğimiz elemanlarda kullanırız. Kullanım şekli aşağıdaki gibidir, anahtar yazan kısma kaldırmak istediğiniz elemanın anahtarını yazmalısınız.
print_r
print_r fonksiyonu bir dizideki tüm elemanları ve anahtarları, dizinin yapısı ile birlikte yazdırır. Aşağıdaki örnek ile daha iyi anlayabilirsiniz.
Dizimizin daha düzenli görünmesi için pre taglarını kullandım, dizinin yapısı yada elemanları hiçbir şekilde değişmedi. Bu taglar sayesinde her şey yanyana yazmayacak. Yukarıdaki kod bize aşağıdaki çıktıyı verir.
-
Array
-
(
-
[0] => eleman1
-
[1] => eleman2
-
[2] => eleman3
-
[3] => element adı 4
-
[4] => element adı 5
-
[5] => element adı yada istediğiniz bir değer
-
)
foreach döngüsü ile dizi listelemek
Bunu bu yazı altında incelemek doğru değil aslında ama ihtiyacı olabilecek arkadaşlar olduğunu düşündüğüm için araya sıkıştırıyorum. Foreach methodu ile yukarıdaki dizimizi listeleyen kod aşağıdaki gibidir.
-
foreach ($diziadi as $no=>$eleman) {
-
}
Bu kod küme parantezleri ({ }) arasında kalan kodları her eleman için çalıştırır. Her seferde işlem görecek elemanı $eleman değişkenine, elemanın anahtarını da $no değişkenine attık ve echo komutuyla yazdırdık. Satır sonundaki br tagını alt satıra geçmek için kullandık. Bu kodlardan önce daha önce kullandığımız dizi elemanlarını belirleme işlemlerinin olması gerektiğini unutmayın. Kodun çıktısı aşağıdaki gibi olur.
-
0 - eleman1
-
1 - eleman2
-
2 - eleman3
-
3 - element adı 4
-
4 - element adı 5
-
5 - element adı yada istediğiniz bir değer
Dizileri Sıralamak
Dizileri sıralamak için kullandığımız hazır fonksiyonlar vardır. Bunlar elemanların değerlerine yada anahtarlarına göre çalışırlar. Bir örnek ile kullanımını görelim.
Burada sort fonksiyonu ile dizimizdeki elemanları değerlerine göre alfabetik sıralattık, bu işlemi yaparken elemanların anahtarları da değişti ve bu sıralamaya göre sıfırdan başlayarak değer aldılar. Sıralama fonksiyonlarının hepsinde anahtarların değişmesi gerekmez, bu kodun çıktısının hemen altında bu konu hakkında gerekli açıklamaları bulabilirsiniz. Kodun çıktısı aşağıdadır, çıktıda da görebileciğiniz gibi alfabetik sıralanınca yeni eklenen eleman da eleman3 ile element adı 4 değerlerinin arasına eklenmiştir.
-
0 - eleman1
-
1 - eleman2
-
2 - eleman3
-
3 - eleman3,5
-
4 - element adı 4
-
5 - element adı 5
-
6 - element adı yada istediğiniz bir değer
Sıralama fonksiyonlarının kısa açıklamaları aşağıdadır, hepsinin kullanımı yukarıdaki örnek ile aynıdır.
sort(); ve rsort(); diziyi elemanların değerlerine göre alfabetik sıralarlar, anahtarlarını yeni sıralamaya göre düzenlerler. sort ile düzalfabetik sıralama, rsort ile ters alfabetik sıralama yapılır.
asort(); ve arsort(); fonksiyonları da diziyi eleman değerlerinin alfabetik sıralamasına göre düzenler fakat anahtarlarını değiştirmez. Aynı şekilde düz sıralama için asort, ters sıralama için arsort kullanılır.
ksort(); ve krsort(); diziyi elemanların anahtar değerlerine göre sıralarlar ve anahtarları değiştirmezler. ksort artan sıralama, krsort azalan sıralama yapar.
count() fonksiyonu
Dizideki eleman saysını verir. Kullanımı basittir.
array_merge() fonksiyonu
İki dizinin elemanlarını birleştirerek tek dizide toplarken kullanılır.
-
foreach ($son_array as $no=>$eleman) {
-
}
Parantez içine birleştirmek istediğimiz dizilerin adlarını virgülle ayırarak yazdık. Son olarak oluşacak olan birleşik dizinin adını da fonksiyona eşitledik. Önemli not: dizileri birleştirirken sayısal anahtarlar yeniden düzenlenir.Çıktı aşağıdaki gibidir.
-
0 - eleman1
-
1 - eleman2
-
2 - 17
-
3 - değişken
array_count_values() fonksiyonu
Dizide aynı değere sahip kaç eleman olduğunu sayar. Örnek aşağıdadır.
array_sum() fonksiyonu
Dizideki elemanlar sayısal veriler ise değerlerinin toplamlarını verir. array_sum($diziadi); şeklinde kullanılır.
Son olarak..
Epeyce uzun bir yazı oldu fakat php ile uğraşmaya yeni başladıysanız okumanızın yararlı olacağını düşünüyorum. Bu yazıdaki tüm örnekleri içinde barındıran bir php dosyasını da yazının sonuna ekliyorum.
Bol bol pratik yapın. İyi çalışmalar, esen kalın..

Mayıs 14th, 2009 on 05:36
dostm supersin
devam devam
sen yap bunları xD
Ekim 27th, 2009 on 17:45
[...] için sayfa başına ve sonuna php taglarını eklememiz gerekir. (<? kodlar ?> gibi) Kod Görünümü [...]
Ocak 5th, 2010 on 12:52
Merhaba .. Sitenizi çok begendim ben AnadoLu Ticaret ögrencisiyim son sınıfta okuyorum bana bi konuda yardımcı olabilir misiniz ? Rica etsem Array koduyLa giriLen sayıLarı küçükten büyüğe dogru sıralayan kodu yazabilir misiniz ? Teşekkür Ederm şimdiden saygıLar (=
Ocak 5th, 2010 on 16:03
Yazıda da anlattığım gibi sort() fonksiyonunu kullanabilirsiniz.
sort($dizi_adi);
print_r($dizi_adi);
Temmuz 26th, 2010 on 14:19
Eren öncelikle abv!
Ulaş, sağol.