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)

PHP:
  1. $diziadi=array('eleman1','eleman2','eleman3');

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.

PHP:
  1. echo $diziadi[0]; // eleman1 çıktısını verir.
  2. echo $diziadi[1]; // eleman2 çıktısını verir.

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.

PHP:
  1. $diziadi[]='element adı 4';
  2. $diziadi[]='element adı 5';
  3. $degisken='element adı yada istediğiniz bir değer';
  4. $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.

PHP:
  1. unset($diziadi[anahtar]);

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.

PHP:
  1. //daha önce yazığımız kodları bir araya toplayarak dizimizi oluşturuyoruz.
  2. $diziadi=array('eleman1','eleman2','eleman3');
  3. $diziadi[]='element adı 4';
  4. $diziadi[]='element adı 5';
  5. $degisken='element adı yada istediğiniz bir değer';
  6. $diziadi[]=$degisken;
  7. echo '<pre>';
  8. print_r($diziadi); //dizimizi print_r fonksiyonu ile yazdırıyoruz.
  9. echo '</pre>';

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.

CODE:
  1. Array
  2. (
  3. [0] => eleman1
  4. [1] => eleman2
  5. [2] => eleman3
  6. [3] => element adı 4
  7. [4] => element adı 5
  8. [5] => element adı yada istediğiniz bir değer
  9. )

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.

PHP:
  1. foreach ($diziadi as $no=>$eleman) {
  2. echo $no." - ".$eleman."<br />";
  3. }

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.

CODE:
  1. 0 - eleman1
  2. 1 - eleman2
  3. 2 - eleman3
  4. 3 - element adı 4
  5. 4 - element adı 5
  6. 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.

PHP:
  1. $diziadi[]='eleman3,5'; //sıralamaya nasıl katılacağını görebilmek için yeni eleman ekledik
  2. sort($diziadi);
  3. foreach ($diziadi as $no=>$eleman) {
  4. echo $no." - ".$eleman."<br />";
  5. }

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.

CODE:
  1. 0 - eleman1
  2. 1 - eleman2
  3. 2 - eleman3
  4. 3 - eleman3,5
  5. 4 - element adı 4
  6. 5 - element adı 5
  7. 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.

PHP:
  1. echo count($diziadi); //dizideki eleman sayısını ekrana basar.
  2. $elemansayisi=count($diziadi); //bu şekilde eleman sayısını bir değişkene atayabilirsiniz.

array_merge() fonksiyonu

İki dizinin elemanlarını birleştirerek tek dizide toplarken kullanılır.

PHP:
  1. $array1=array('eleman1', 'eleman2');
  2. $array2=array('17','değişken');
  3. $son_array=array_merge($array1,$array2);
  4. foreach ($son_array as $no=>$eleman) {
  5. echo $no." - ".$eleman."<br />";
  6. }

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.

CODE:
  1. 0 - eleman1
  2. 1 - eleman2
  3. 2 - 17
  4. 3 - değişken

array_count_values() fonksiyonu

Dizide aynı değere sahip kaç eleman olduğunu sayar. Örnek aşağıdadır.

PHP:
  1. $dizi=array('değer1','değer2','değer3','değer1','değer3','değer1');
  2. $say = array_count_values($dizi);
  3. echo $say['değer1']."<br />"; //değeri değer1 olan eleman sayısı (3)
  4. echo $say['değer2']."<br />"; //değeri değer2 olan eleman sayısı (1)
  5. echo $say['değer3']."<br />"; //değeri değer3 olan eleman sayısı (2)

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.. :)

Örnek Dosyayı Buraya Tıklayarak İndirebilirsiniz.