Navigate / search

PHP Array_keys Fonksiyonu

Daha önceki derslerimizde anahtarlı (indisli) dizileri görmüştük.Şimdi inceleyeceğimiz komutla bir dizideki anahtarları direk olarak bir değişkene atmaya yarıyor.Bunu array_keys() komutu ile yapıyoruz.Dizideki bütün anahtarları yani indisleri alıp bir başka değişkene bütün anahtarları dizi olarak atar.
İlk önce anahtarlı bir dizi yazalım.

$telefon=array("nokia"=>335,"Sony"=>250,"Samsung"=>200,"LG"=>250);

şimdi ise array keys komutu ile dizi anahtarlarını bir diziye aktaralım

$anahtarlar=array_keys($telefon);

Böylece Nokia, Sony,Samsung ve LG anahtarlarını $anahtarlar adlı değişkene aktardık.

Array_keys() fonksiyonunun bir özelliği daha var.Dizi değişkeni içinde belirli kriterlere göre anahtar seçebiliyoruz.Dizi değişkenimizi inceleyin ve 2 adet 250 tl değerinde telefon olduğunu göreceksiniz.Sony ve LG.Bir fiyat kriteri koyup array_keys komutunu kullanalım şimdi

$anahtarlar=array_keys($telefon,"250");

Şimdi ise $telefon dizisindeki değeri 250 olan anahtarları $anahtarlar adlı diziye taşıyacaktır.bunlar Sony ve LG olacaktır.

Array_keys ile yaptığımız işlemi bu fonksiyon olmadan bir döngü ile de gerçekleştirebiliriz.

1
2
3
4
5
$telefon = array("nokia"=>335,"Sony"=>250,"Samsung"=>200,"LG"=>250);
$sonuc = array();
foreach ($telefonas $index => $value) {
   $sonuc [$value][] = $index;
}

Sonuç olarak array_keys fonksiyonunun yaptığı işlemin aynısı yaptık. Projelerinizde farklı bir uygulama yaparken fonksiyonu kullanmak yerine bu gibi döngüler oluşturabilirsiniz.

Array_pop Fonksionu – Dizinin Son Elemanını Silme

Bir önceki dersimizde array_shift ile dizinin ilk elemanını değişken içine kaydırmış ve diziden ilk elemanı silmiş olduk.Şimdi ise dizinin son elemanını aynı mantıkla sileceğiz.Bunu için array_pop fonksiyonunu kullanacağız.Yine array_shift komutunda olduğu gibi silinen elemanı değişken içine atacaktır.
hemen bir önceki örneğimizi array_pop() fonksiyonu ile yapalım

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$dizi=array("Şafak","Bilişim","PHP","Dersleri");
foreach ($dizi as $kelime){
      echo "<b>";
      echo "$kelime&nbsp;";
      echo "</b>";
      }
	  echo "<br><br>";
$silinen_eleman=array_pop($dizi);
echo "Array Pop Kullanıldıktan sonra;<br><br>";
foreach ($dizi as $kelime){
      echo "<b>";
      echo "$kelime&nbsp;";
      echo "</b>";
      }
  	  echo "<br><br>";
echo "Diziden Silinen Kelime \"$silinen_eleman\".";

Array_shift ‘ teki mantık ile bu sefer array_pop fonksiyonun kullanarak dizinin son elemanını sildik.Çıktımız aşağıdaki gibi olacaktır.

Safak Bilisim PHP Dersleri
Array Shift Kullanildiktan sonra;
Safak Bilisim PHP 
Diziden Silinen Kelime "Dersleri".

In_array Fonksiyonu

in_array () Fonksiyonu bir önceki derste gördüğümüz array_key_exists fonksiyonuyla benzer bir görev görür.array_key_exists dizideki anahtarları sorgularken in_array fonksiyonu anahtarların içindeki değerleri sorgular ve belirttiğimiz anahtarın olup olmadığını bize söyler.

Aynı dizi üzerinde bu kez değerler içinden fiyat sorgulaması yapalım.

1
2
3
4
5
6
7
$telefon=array("nokia"=>335,"Sony"=>250,"samsung"=>200);
 
if (in_array("335",$telefon)){
	echo "Aradığınız kriterde sonuç var";
	}else{
	echo "Aradığınız kriterde sonuç yok";
	}

335 değer dizi içinde yer aldığı için if sorgulamasında “Aradığınız kriterde sonuç var” cevabı gelecektir.

Array_key_exists () Dizi Fonksiyonu

Php’nin kendine ait ve bizim kullanmamıza hazır fonksiyonları olduğunu söylemiştik.(echo() print() phpinfo() gibi) Şimdi yine bu fonksiyonlarımız gibi fakat dizilerde kullanabileceğimiz tüm fonksiyonları tek tek ele alacağız.Bunlardan array_key_exists() fonksiyonuyla başlayalım.

Array_key_exists dizide belli bir anahtar içeren dizi elemanı varmı sorusunu sormak için  kullanırız.Örneğin bir dizide “x” adında bir anahtar olup olmadığını sorgulayacak kodu yazalım.

1
array_key_exists("x",$diziadi);

Bu fonksiyon $diziadi adındaki dizide x adlı bir anahtar olup olmadığını sorguluyor.Eğer varsa dönecek cevap True x adında bir anahtar yoksa dönecek cevap False olcaktır.
Şimdi bunu program içinde kullanalım.İlk önce bir dizi yazalım daha sonra o dizideki bir anahtar olup olmadığını sorgulayalım.array_key_exists() fonskiyonundan dönecek cevapa göre programımızın işleyişini düzenleyelim

1
2
3
4
5
6
7
$telefon=array("nokia"=>335,"Sony"=>250,"samsung"=>200);
 
if (array_key_exists("nokia",$telefon)){
	echo "Aradığınız kriterde sonuç var";
	}else{
	echo "Aradığınız kriterde sonuç yok";
	}

Gördüğünüz gibi if komutuyla sonucun True yani doğru olup olmadığını sorguladık ve doğru yada yanlış cevaplara göre kodlarımızı yazdık.Bu programı çalıştırdığınızda dizide nokia isimli bir anahtar olduğu için “Aradığınız kriterde sonuç var” yazısı çıkacaktır.

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.