PHP Dersleri #2 Diziler ve Detayları

ByPerPer

Uzman üye
23 Mar 2018
1,986
2
95
İstanbul
Selam arkadaşlar php serüvenine kaldığımız yerden devam ediyoruz. Bir önceki konumuzda php kodları nasıl yazılır syntaxı hakkında bilgi vermiştik. Bir önceki konu; https://tik.lat/33Eed
Bu yazımızda ise dizilere bakacağız hemen vakit kaybetmeden yazıya geçelim.

270px-PHP-logo.svg.png


Diziler nedir?
Dizi derken evet bildiğimiz dizi bu. Yani örnek verecek olursak bir sepet düşünelim bu sepetin içinde meyveler var. İşte bu sepet içindekilere dizi diyoruz. Programlama olarak konuşursak değişkenleri bir arada toplayan,birden fazla değer veren ve bunları sıralamaya yarayan veri tipleridir.
Örneğin sadece $sepet değişkeninde meyvelerin değerlerine ulaşıp(elma,armut vs..) değişiklikler yapabiliriz. Veya basit bir üyelik sistemi yaptınız varsayalım $uyeler değişkeninde tüm üyelerin bilgilerine ulaşabilir,sıralayabilir ve değişiklikler yapabiliriz.

Nasıl Dizi Tanımlayabilirim?
Bunun 2 yolu var aslında. Birisi array() fonksiyonunu kullanarak biri de manuel olarak yapmak. 2 tanesinide göstereyim. Şeftaliye tiki olanlar şimdiden kusura bakmasınlar en sevdiğim meyvedir benim :)
array ile;
Kod:
$meyveler = array("Elma", "Şeftali", "Karpuz", "Ayva");
$meyveler dizisine 4 tane değer atadık.

array kullanmadan;
Kod:
$meyveler[0] = "Elma";
$meyveler[1] = "Şeftali";
$meyveler[2] = "Karpuz";
$meyveler[3] = "Ayva";
Dizileri tanımlamak 0 ile başlar 1 ile değil.

array() fonksiyonuyla oluşturduğumuz dizide 0,1 diye yazmamıza gerek yok onları php kendisi yapıyor. Sayısal değerler ile.. Yani $meyveler dizisinin 0. anahtar değeri elma oluyor.

Peki Anahtarı Sayısal Olmayan Dizileri Nasıl Oluştururuz?

Kod:
$meyveler = array('bir' => 'Elma', 'iki' => 'Şeftali', 'üç' => ''Karpuz);
Burada kendimiz yapmış olduk değerleri.

Aynı işlemi array olmadan yapalım;

Kod:
$meyveler['bir'] = 'Elma';
$meyveler['iki'] = 'Şeftali';
$meyveler['üç'] = 'Karpuz';

Dizileri nasıl ekrana yazdırabilirim?
Hemen basit bir örnek yapalım;

Kod:
$meyveler[0] = "Elma";
$meyveler[1] = "Şeftali";
 
echo $meyveler[0];
Ekranda Elma yazar. Çünkü anahtarını 0 yaptık. Eğer ki 1 yapsaydım ekranda Şeftali yazardı.

Dizi değerlerini değiştirmek için;
Kod:
$meyveler[0] = "Elma";
$meyveler[0] = "Şeftali";
 
echo $meyveler[0];
Ekranda Şeftali yazar. Aynı değişken tanımlar gibi yapmış olduk.

Basit bir dizi örneği;

Kod:
$uye["isim"] = "Abdullah";
$uye["yas"] = 25;
$uye["mail"] = "[email protected]";
 
echo 'Uyenin ismi ' . $uye["isim"] . ', yaşı ' . $uye["yas"] . ', maili ise ' . $uye["mail"] . '.';
Ekranda Uyenin ismi Abdullah, yaşı 25, maili ise [email protected]. yazar.

Dizinin tümünü ekrana yazdırmak
İşte bu konuda bize print_r fonksiyonu yardımcı oluyor. Hemen örnekle pekiştirelim.

Kod:
$meyveler = array("elma", "seftali", "karpuz");
print_r($meyveler);
Ekranda
Kod:
Array
(
    [0] => elma
    [1] => seftali
    [2] => karpuz
)
Yazar..
Echo komutu ile dizileri ekrana yazdıramıyoruz çünkü birden fazla değişken olduğu için.

Dizilerdeki eleman sayısını bulmak
Eleman sayısını bulmak için ingilizcedede aynı manada olan count() fonksiyonunu kullanıyoruz. Uzatmadan örneğe geçelim.

Kod:
$meyveler = array("elma", "seftali", "karpuz");
echo count($meyveler);
Ekranda 3 yazar.

Dizileri sıralama
Diziler için 2 tür sıralama şekli bulunuyor. Değere göre ve anahtara göre. Şimdi normalde yazmayacaktım ama konu geciktiği için yazayım. Aşağıdaki tabloya göz gezdirin.

sort()= Değere göre küçükten büyüğe sıralar. Anahtarıyla olan ilişkisini bozar.
rsort()=Değere göre büyükten küçüğe sıralar. Anahtarıyla olan ilişkisini bozar.
asort()=Değere göre küçükten büyüğe sıralar. Anahtarıyla olan ilişkisini bozmaz.
arsort()= Değere göre büyükten küçüğe sıralar. Anahtarıyla olan ilişkisini bozmaz.
ksort()=Anahtara göre küçükten büyüğe sıralar.
krsort()= Anahtara göre büyükten küçüğe sıralar.
Bu tabloyu bende ezber bilmiyorum ne zaman işime yarasa o zaman bakıyorum internetten.

Örnek verelim;
Kod:
$meyveler = array("elma", "seftali", "karpuz");
sort($meyveler);
print_r($meyveler);

Çıktısı;
Kod:
Array
(
    [0] => elma
    [1] => seftali
    [2] => karpuz
)

Hazır tanımlanmış diziler
PHP tarafından önceden tanımlanmış herhangi bir işlem yapmadan kullanmamıza yararlar. Mesela siteye giren kişinin IP adresini almak gibi veya fake scriptlerde kullanılan kullanıcıdan değer almada işe yarayan $_POST gibi.. Bunlara global değişkenler diyoruz. Php'nin kendi sayfasından ulaşabilirsiniz. Biz $_POST,$_COOKİE gibilerini ilerleyen php derslerimizde kullanacağız örneğin form işlemlerinde.

Dizileri nerede kullanabilirim?
Dizilerin amacı tek bir değişkende bir mesajın tüm değerlerini ayrı ayrı tanımlamış olduk. Genelde veri tabanı işlemlerinde işe yarar üye işlemleri gibi.

Fazla uzatmayalım :) Bir daha ki PHP dersimizde görüşmek dileğiyle.
Saygılarımla..
ByPerPer
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.