Navigate / search

is_array() – Bir Değişkenin Dizi Olup Olmadığını Kontrol Etmek

Program içerisinde bir çok değişken kullanabiliriz.Bunlar program işleyişine göre diziye dönüşür veyahut diziler explode ile ayrılır normal değişkenlere dönüşür.Bazı durumlarda da değişkenin dizi olup olmaması bizim için önemli olabilir.Bunu değişkenin kendisine şöyle soralım.Sen dizimisin ? değilmisin ?. Bu sorgulama için kullanacağımız komut is_array() fonksiyonudur.
Php Dilinde bunu nasıl soracağız.Şöyle;

is_array($degisken);

Bu komutun döndüreceği sonuç eğer $degisken isimli değişken bir dizi değişken ise True değil ise False cevabı olacaktır.Şimdi bunu program içinde sorgulayalım ve dönecek cevaba göre mesajımızı yazdıralım.Sorgulamayıda if komutuyla yapıyoruz.

1
2
3
4
5
6
$meyva=array("elma","armut","erik","üzüm","kavun","şeftali");
if (is_array($meyva)){
       echo "Bu Bir Dizidir.";
       }else{
       echo "Bu Bir Dizi Değildir";
       }

Bu kodları kullandığımızda “Bu Bir Dizidir.” cevabını alacağız.Çünkü $meyva isimli bir değişken tanımladık ve bunu bir dizi yaptık

ksort() – krsort() ile Dizi Anahtarlarına Göre Sıralama

sort(),rsort(),asort(),arsort() ve natsort() ile dizi değerlerini sıralamayı öğrenmiştik.Şimdide dizi değerlerini değil dizi anahtarlarını sıralamayı göreceğiz.Anahtara göre sıralamak için ksort() ve krsort fonksiyonlarını kullanacağız.
Anahtarlı bir dizi oluşturalım ve yazdıralım.

1
2
3
4
$telefon=array("Nokia"=>335,"Sony"=>250,"Samsung"=>200,"LG"=>180,"General Mobile"=>150);
foreach ($telefon as $marka=>$fiyat){
	echo "$marka = $fiyat<br>";
	}

Telefon marka ve fiyatlraı ekrana şu şekilde gelecektir.

Nokia = 335
Sony = 250
Samsung = 200
LG = 180
General Mobile = 150

Anahtara göre sıralamak istersek.Foreach ile döngüye başlamadan önce ksort($telefon); komutunu kullanmamız gerekiyor.

1
2
3
4
5
$telefon=array("Nokia"=>335,"Sony"=>250,"Samsung"=>200,"LG"=>180,"General Mobile"=>150);
ksort($telefon);
foreach ($telefon as $marka=>$fiyat){
	echo "$marka = $fiyat<br>";
	}

Ksort ile sıraladıktan sonra telefon listemiz şöyle sıralanacaktır.

General Mobile = 150
LG = 180
Nokia = 335
Samsung = 200
Sony = 250

Eğer sıralamayı tersten yapmak istersek krsort() fonksiyonunu kullanmamız gerekecektir.

natsort() ile Dizilerde sıralama(Doğal Sayı Sıralaması)

Dizi sıralamalarıyla ilgili olarak sort rsort asort ve arsort fonksiyonlarını görmüştük.Şimdide natsort() fonksiyonunu ele alacağız.Natsort() fonksiyonu sort() ile aynı görevi yapar fakat işin içine sayısal değerler girdiğinde sort() fonksiyonu sayılarıda alfabetik sistemdeki gibi sıralamak ister.Natsort() fonksiyonu ise sıralamayı sayısal değerlere göre yapar.Şimdi elimizde bi dosya listesi var.Hadi bunları hem sort() hemde natsort() ile sıralayalım.

Kitap1.xls
Kitap23.xls
Kitap6.xls
Kitap10.xls
Kitap62.xls

Bu dosya listesini aşağıdaki gibi sort ile sıralarsak;

1
2
3
4
5
$dosyalar=array("Kitap1.xls","Kitap23.xls","Kitap6.xls","Kitap10.xls","Kitap62.xls");
sort($dosyalar);
foreach ($dosyalar as $dosyaadi){
	echo $dosyaadi."<br>";
	}

Sıralama şöyle olacaktır.

Kitap1.xls
Kitap10.xls
Kitap23.xls
Kitap6.xls
Kitap62.xls

Şimdide sıralamamızı natsort() fonksiyonuyla yapalaım bakalım sıralamamız nasıl değişecek.

1
2
3
4
5
$dosyalar=array("Kitap1.xls","Kitap23.xls","Kitap6.xls","Kitap10.xls","Kitap62.xls");
natsort($dosyalar);
foreach ($dosyalar as $dosyaadi){
	echo $dosyaadi."<br>";
	}

Ve sıralama böyle gözükecek.

Kitap1.xls
Kitap6.xls
Kitap10.xls
Kitap23.xls
Kitap62.xls

Sıralama farklılıklarına lütfen inceleyiniz ;)

Php Dizileri Sıralama asort() – arsort()

Not: Sort ve rsort ile sıralama yaparken.Değişken anahtarlarının sayısal değerleri değişir ve sıralamaya göre ilk değere 0 dan başlayarak yukarı doğru yeni anahtar isimlerini verir.

Bir önceki dersimizi bu not ile bitirmiştikŞimdiki asort() ve arsort() fonksiyonlarımızda dizi değerlerinin sıralaması değişse bile ilk olarak dizide aldığı anahtarı muhafaza eder.Sıralama ilk yazdırılsa bile önceki değerinin yazdırır.Şimdi hemen bir örnekle deneyelim.(Sizde deneyerek yapın lütfen ;) ).
İlk önce dizimizi oluşturuyoruz. ilk önce anahtarlarıyla birlikte dizi elemanlarını yazdırıyoruz.Hemen sonra sort ile sıralama yapıp dizimizi anahtarlarıyla birlikte yazdırıyoruz.

1
2
3
4
5
6
7
8
9
$isimler=array("suat","esma","hulya","mehmet","ali","sinan");
foreach ($isimler as $anahtar=>$isim){
	echo "$anahtar.$isim <br>";
}
echo "---------------------------------";
sort($isimler);
foreach ($isimler as $anahtar=>$isim){
	echo "$anahtar.$isim <br>";
}

Sonuç aşağıdaki gibi olacaktır.

0.suat
1.esma
2.hulya
3.mehmet
4.ali
5.sinan
---------------------------------
0.ali
1.esma
2.hulya
3.mehmet
4.sinan
5.suat

Bu kodlamada sort yerine asort kullansaydık dizi anahtarları ilk elemandan 0 ‘dan başlayıp devam etmiyecek.İlk halindeki dizi anahtarları yani indislerini muhafaza edecekler.Böyle ;

0.suat
1.esma
2.hulya
3.mehmet
4.ali
5.sinan
---------------------------------
4.ali
1.esma
2.hulya
3.mehmet
5.sinan
0.suat

Harf sıralaması tersten başa doğru yapmak istersek de komutu böyle kullanıyoruz.

1
arsort($isimler);

sort() – rsort() Php Dizilerinde Sıralama (Harfe Göre)

Şimdide dizi değerleri için veya anahtarları içinde sıralamalara göz gezdireceğiz.Sıralama işlemi harf sırasına göre gider.
İlk olarak sort() komutunu göreceğiz.Şimdi bir dizi oluşturalım kendimize.İçindeki değerleri harf sırası açısından karışık bir şekilde kaydedelim

1
2
3
4
$isimler=array("suat","esma","hulya","mehmet","ali","sinan");
foreach ($isimler as $isim){
	echo "$isim <br>";
}

Ekranda gördüğümüz isimleri kaydettiğimiz sırayla yazdırdık.Şimdi sort() fonksiyonu ile sıralamayı harf sırasına göre yapmak istersek sort($isimler); diye bir satır eklememiz gerekiyor.

1
2
3
4
5
$isimler=array("suat","esma","hulya","mehmet","ali","sinan");
sort($isimler);
foreach ($isimler as $isim){
	echo "$isim <br>";
	}

Ve böylece$ isimler değişkenini yazdırdığımızda sıralama harf sırasına göre olacaktır.Peki ya harf sıralamasını tersten başlatmak istersek ne olacak.Yine bu programındaki diziye örnek olarak;

1
rsort($isimler);

olarak yazmalıyız.
Not: Sort ve rsort ile sıralama yaparken.Değişken anahtarlarının sayısal değerleri değişir ve sıralamaya göre ilk değere 0 dan başlayarak yukarı doğru yeni anahtar isimlerini verir