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

Php Çok Boyutlu Diziler

Şimdide Php’de Çok boyutlu dizileri ele alacağız.Çok boyutlu dizi denince akla kategori mantığı gelebilir.Örneği bir kategorileme yapalım;
Nokia
6300
5310
N95
N97
Sony Ericsonn
K750i
K790i
Samsung
E250
U600
Gibi olsun…Bütün bunları bir değişkene nasıl atarız.Tabiki diziler, ama nasıl diziler, çok boyutlu diziler.Verdiğimizi örneğe uygun bir çok boyutlu dizi oluşturacağız.Bu örneği inceledikten sonra sizde kendiniz bunlara benzer örnekler yapmaya çalışın.Örneğin kolay anlaşılabilmesi için oluşturduğum 3. boyuttaki dizileri alt alta yazacağım

1
2
3
4
$telefonlar=array(    "Nokia"=>array("6310","5310","N95","N97"),
                      "Sony Ericsonn"=>array("K750i","K790i"),
                      "Samsung"=>array("E250","U600")
);

Çok zor olmayan bir yöntemle çok boyutlu diziler oluşturabiliyoruz.Şimdi bu dizileri foreach ile yazdıralım…

1
2
3
4
5
6
foreach ($telefonlar as $marka=>$modelno){
     echo $marka."<br>";
     foreach ($modelno as $model){
           echo "&nbsp;&nbsp;&nbsp;".$model."<br>";
     }
}

Dizileri Tabloya Aktarmak Foreach

Foreach komutuyla dizileri yazdırmayı çğrenmiştik.Şimdiki dersimizde diziden gelen anahtar ve değerleri bir tabloya yazdıracağız.Önceki dersimizden farklı bir bilgi içermeyen sadece php içinde html kullanımında size yardımcı olacak bir derstir.Aynı şekilde dizi değişkenimizi tanımlıyor değerlerini veriyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
$ozellik[marka]="Nokia";
$ozellik[model]="5300";
$ozellik[kamera]="1.3 Mp";
$ozellik[mp3]="var";
$ozellik[bluetooth]="var";
$ozellik[fmradio]="var";
 
echo "<table border=1>";
foreach ($ozellik as $nitelik=>$durum){
      echo "<tr><td>$nitelik</td><td> $durum</td></tr>";
      }
echo "</table>";

Döngüye başlamadan önce table border=1 yazarak tablomuzu açtık.Döngü içinde de tablomuzu oluşturmak için tr ile bir satır açtık.Sonra niteliğimizi td içine alarak bir hücreye yerleştirdik.Aynı şekilde özellik durumunu gösteren değişkenimizide td içine alıp aynı satırda bir hücre daha oluşturduk.Daha son /tr ile satırımızı bitirdik.Döngü her döndüğünde tr ile açılıp /tr ile kapandığı için her döngü turu bir satıra yazılacaktır.

Dizilerin Döngülerle Kullanımı – Alfanumerik

Alfanumerik Dizilerin Döngülerle Kullanımı

Dizi anahtarlar yani indisleri numerik olmayan dizileri bir kaç ders önce görmüştük.Bu dizilerde foreach döngüsünü kullanmak, numerik anahtarı dizilerde foreach kullanmaktan biraz farklıdır.Foreach yapısı şu şekildedir

foreach ($degisken as $anahtar=>$deger){
}

Bu döngüde ilk önce dizi değişkenimiz yazılır ve as koyulur.Sonrasına yazdığımız $anahtar=>$deger ise dizi değişkenimizdeki her bir elemanın anahtarını ve değerini gösterir.Döngü her döndüğünde sıradaki elemanın anahtar ve değer çiftini alır.
Telefon dizisi örneğimizi foreach ile yazdırmayı deneyelim.

1
2
3
4
5
6
7
8
9
10
$ozellik[marka]="Nokia";
$ozellik[model]="5300";
$ozellik[kamera]="1.3 Mp";
$ozellik[mp3]="var";
$ozellik[bluetooth]="var";
$ozellik[fmradio]="var";
 
foreach ($ozellik as $nitelik=>$durum){
      echo "$nitelik : $durum";
      }

bu kodlarımızı çalıştırırsanız sonucun şu şekilde olacağını görürsünüz.

marka : Nokia
model : 5300
kamera : 1.3 Mp
mp3 : var
bluetooth : var
fmradio : var

Dizilerin Döngülerle Kullanımı – Numerik

For Döngüsü ile Numerik Dizilerin Döngülerle Kullanımı

Numerik dizilerde indis (anahtar) isimleri sayılardan oluştuğunu önceki derslerimizde öğrendik.Şimdi bu değişkenleri tek tek yazarak değilde döngüler ile kullanmayı göreceğiz.

İlk döngümüz For döngüsü

$ogrenci[1]="Ali";
$ogrenci[2]="Esra";
$ogrenci[3]="Murat";
$ogrenci[4]="Hakan";
 
for ($sayac=1;$sayac&lt;=count($ogrenci);$sayac++) {
       echo $ogrenci[$sayac]."";
}

Dizi tanımlamayı zaten görmüştük oraya hiç deyinmiyorum.
For döngüsünde bir sayaç belirledik.Bu sayacın başlangıcın ilk indisimiz olan “1″ yaptık.(For döngüsünde hatırlamadığınız yerler varsa mutlaka o konuyu birkez daha gözden geçirin).For döngüsü dersinde anlattığım koşul kısmına ise count() fonksiyonuyla dizinin değişken sayısısını yazdırıyoruz.Böylece for döngüsü sayacı “1″den başlayıp dizinin eleman sayısı olan 4 e kadar dönecektir.Her döngü dönüşünde “$ogrenci[$sayac]” komutundaki sayaç yerine o döngüdeki sayaç değeri yazacaktır.İlk sayaç değerimiz 1 olup $ogrenci[1]=”Ali” değerimizi gösterecektir.Her döngüde sayacımız bir artacak ve 4. anahtarımıza kadar döngü dönecek ve öğrenci isimlerini yazdıracaktır

Foreach Döngüsü ile Numerik Dizilerin Döngülerle Kullanımı

Foreach döngüsü For döngüsüne göre daha basit bir yapıya ve kolay kullanım özelliğine sahiptir.Herhangi bir sayaç veya başka bir değişken belirlemimize gerek yoktur.Şimdi ayni dizide Foreach kullanımına bakalım

$ogrenci[1]="Ali";
$ogrenci[2]="Esra";
$ogrenci[3]="Murat";
$ogrenci[4]="Hakan";
 
foreach ($ogrenci as $ogrenciadi){
       echo $ogrenciadi."";
}

Gördüğünüz gibi Foreach döngüsünde sayaçlarla uğraşmadan aynı işi yaptık.Foreach ‘teki mantık şöyledir.
Dizinin eleman sayısı kadar döngüye gir ve her döngüde sıradaki elemanı “as” kelimesinden sonra gelen değişkene yazdır.