PHP DİZİLER(ARRAY) TEK BOYUTLU DİZİLER

Önceki konularda değişkenlerden bahsetmiştik içine veri konulan kutulara benzetmiştik. Değişkenler sadece bir veri tutabilirler. Ancak proğramlama yaparken birden fazla veriyi tutabilecek değişkenlere ihtiyaç duyulmaktadır. Bu durumda devreye diziler girer.

Sayıca fazla olan verileri tek bir değişken ile temsil ederek grup haline getirmek için diziler kullanılır. php'de dizileri kullanmak için array() deyimi kullanılmaktadır. Diziler tek boyutlu ve çok boyutlu olarak iki şekilde kullanılmaktadır.

TEK BOYUTLU DİZİLER


Tek boyutlu dizilerin kullanımı şu şekildedir


<?php

$dizi_adi = array(değer1,değer2,...);

?>

Diziler oluşturulurken array() deyimi kullanılır. array deyimindeki parentezin içine istenen sayıda değer ve aralarına virgül konarak yazılır.

// değer herhangi bir türde herhangi bir değer olabilir.

Anahtar belirtilmiş gösterimi


<?php

$dizi=array();

$dizi[anahtar] = değer1;

$dizi[anahtar] = değer2;

?>

Değişkenlerin tek tek veri tutması


<?php

$renk1 = "mavi";

$renk2 = "siyah";

$renk3 = "yeşil";

$renk4 = "beyaz";

$renk5 = "turuncu";

?>

Yukarıda renklerimizi bu şekilde 5 değişkende tutmak yerine proğramlama açısından daha pratik olan dizi değişkeninde de tutabiliriz. Bunun için gerekli kodlar şu şekildedir.


<?php

$renkler = array("mavi","siyah","yeşil","beyaz","turuncu");

?>

Yukarda önce renkler isminde değişken oluşturulmuş sonra array deyimiyle bunun bir dizi değişken olduğu belirtilmiştir. array deyiminde parantez içine dizi de bulunması istenen veriler yazılmıştır.

Dizilerin temelinde $anahtar(indis, sıra numara) - $değer ilişkisi vardır. Yani her anahtar, bir değeri işaret eder. Anahtarlar integer veya string olabilirken değerler integer, string, float, boolean veya bir array (dizi) olabilir.


<?php

$dizi = array("a", "b", "c","d");

?>

Yukarıda "a", "b", "c" ve "d" değerlerini tutan bir dizi tanımlanmıştır. Anahtar belirtilmemiştir. var_dump() kullanarak, bu diziyle ilgili bilgilere bakalım:


<?php

$dizi = array("a", "b", "c","d");

echo "<pre>";

var_dump($dizi);

echo "</pre>";

?>

ÇIKTI:


array(4) {

  [0]=>
  
  string(1) "a"
  
  [1]=>
  
  string(1) "b"
  
  [2]=>
  
  string(1) "c"
  
  [3]=>
  
  string(1) "d"
}

Bu çıktıya göre "a" değerinin anahtarı 0, "b" değerinin anahtarı 1 ve "c" değerinin anahtarı 2 "d" değerinin anahtarı 3'dür. Eğer burada olduğu gibi dizi tanımlanırken sadece değerler belirtilirse, dizi anahtarları sıfır'dan başlar. Yani yukarıdaki örnek şununla eşdeğerdir:


<?php

$dizi = array(0 => "a", 1 => "b", 2 => "c", 3=>"d");

?>

Görüldüğü gibi anahtar ve değer eşlemesinde => işareti kullanılıyor. Değerleri birbirinden ayırırken de virgül kullanılıyor. Diğer gösterim türü:


<?php

$dizi = array();

$dizi[0] = "a";

$dizi[1] = "b";

$dizi[2] = "c";

$dizi[3] = "d";

?>

PHP DİZİ ELEMANLARINA ERİŞİM


Tanımlı olan bir dizi değişkenin içerdiği elemanlara erişmek için köşeli parantezler içinde [2] indis değeri belirtilmedir. Aşağıdaki örnekte bir dizi değişkenin istediğimiz elemanları ve tek bir elemanına çekmek mümkündür.

Örnek:


<?php

$hafta = array("pazartesi","Salı","Çarşamba","Perşembe",

             "Cuma","Cumartesi","Pazar");

echo $hafta[3]; // ekrana perşembe yazar

?>

PHP DİZİYE ELEMAN EKLEME



<?php

$dizi = array();

$dizi[0] = "a";

$dizi[1] = "b";

$dizi[2] = "c";

$dizi[3] = "d";

?>

Yukarıda ki diziye sonradan "e" elemanı ekleyelim:


<?php

$dizi = array();

$dizi[0] = "a";

$dizi[1] = "b";

$dizi[2] = "c";

$dizi[3] = "d";


echo $dizi[2]."<br>";

$dizi[] = "e"; // diziye eklenecek

echo $dizi[4];

?>

ÇIKTI:

c

e

Dikkat ettiyseniz son eklediğimiz elemana anahtar belirtmedik, Böyle durumlarda veri dizinin sonuna atanır.

Dizi indis(anahtar) numaralarına istediğimiz numarayı verebiliriz. Örnekte görelim.


<?php

$dizi = array();

$dizi[15] = "a";

$dizi[23] = "b";

$dizi[30] = "c";

$dizi[40] = "d";

echo $dizi[15]."<br>";

echo $dizi[30];

?>

ÇIKTI:

a

c

İLİŞKİSEL DİZİLER

Eğer bir dizi tanımlarken özel olarak indis değeri belirtmezsek php yorumlayıcısı dizilerin indis değerlerini varsayılı olarak sıfır'dan başlayarak birer artırarak numaranlandırma işlemi gerçekleştirir. Ama bazen dizilere özel indis değerleri vermek gerekebilir.

İlişkilendirilmiş diziler (=>) eşittir büyüktür oparatörü birlikte kullanılır. Kullanım şekli şu şekildedir.


<?php

$dizi_adi =array(anahtar1 => değer1,
                 
                 anahtar2 => değer2,
            
                 ...
                 ...
				 
	       );
				 
?>
				 

// anahtar alan string veya integer olabilir.

// değerin ise tür sınırlandırılması bulunmamakta


<?php

$meyveler = array(
                  "meyve1" => "Muz",
				  
		   "meyve2" => "Kiraz",
				  
		   "meyve3" => "Elma",
		 );
				  
?>				
			  

Diğer kullanımı görelim:


<?php

$meyveler = array();

$meyveler["meyve1"] = "Muz";

$meyveler["meyve2"] = "Kiraz";

$meyveler["meyve3"] = "Elma";

?>	

İLİŞKİSEL DİZİ ELEMANLARA ERİŞİM



<?php

$il_telefon_kodu = array(212 => "istanbul",
                        
			 312 => "ankara",
							
			 322 => "adana",

			 286 => "çanakkale",

		         352 => "kayseri",	

                       );
						 
$il_telefon_kodu[] = "izmir"; // diziye sonradan eleman ekliyoruz.

//anahtar kullanılarak ekrana yazdırılır.

echo "
312 telefon kodlu il...:".$il_telefon_kodu[312]; //print_r ile dizinin tüm verileri ekrana yazdırılır. echo "<pre>"; print_r($il_telefon_kodu); echo "</pre>"; ?>

ÇIKTI:

312 telefon kodlu il...:ankara

Array
(
    [212] => istanbul
    [312] => ankara
    [322] => adana
    [286] => çanakkale
    [352] => kayseri
    [353] => izmir
)

Dizileri ekrana yazdırılırken $il_telefon_kodu[anahtar] array değişkenin Anahtarı belirtilerek ekrana yazdırılır.

Yukarıda ki örnekte dikkat ettiyseniz izmir verisini ekledik anahtar(indis) bir artırarak 353 olarak izmiri yazdırdı. anahtar belirtmezsek kendisi otamatik atadığı için veri özelliğimiz bozulabilir; ayrıca burda özellikle otomatik atadığı sayı en son indise göre değil enbüyük indise göre sayıyı bir artırarak atar.

Anahtarı(indis) string olanda veri eklediğimizde ne tür atama yaptığını öğrenelim:



<?php

$il_telefon_kodu = array(
                         "istanbul" => 212,
						 
			 "ankara" => 312,
						 
			 "kayseri" => 352,
                          
			);
						 
 $il_telefon_kodu[] = 322; //diziye eklenecek veri
	
 echo "<pre>";

 print_r($il_telefon_kodu);

 echo "</pre>";
   
?>

Array
(
    [istanbul] => 212
    [ankara] => 312
    [kayseri] => 352
    [0] => 322
)

Yukarıda görüldüğü üzere 322 verisi sıfır olarak atanmıştır. Böyle durumlar ilişkelendirilmiş diziler de kontrolün kaybedilmesine istenmeyen durumların oluşmasına neden olabilir. Bu nedenle ilişkelendirilmiş dizilerde mutlaka anahtarın belirtilmesi gerekir.


Engin bölük 14/08/2020

Merhaba yazdığım bir php sayfasında form ile db e bilgi yazdırıyorum ve sonrasında listeliyorum alanlardan birinde değişkene atanmış 1-2-3-4-5 formatında data var, diğer bir değişkende de sadece 1 rakkam var mesela 5, ben array fonksiyonu ile 2.nci değişkenin 1.nci değişken içinde olup olmadığını sorgulatmak istiyorum db den gelen 1-2-3-4-5 formatlı veriyi dizi olarak nasıl tanımlar işlemi yaptırırım, peşin teşekkürler...

yönetici 17/08/2020

Engin, şu konnuya bak.
Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır. Lütfen Yukarıda ki mesajları okuyun tekrar aynı soruları sormayın.

5515

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
  • Git
  • React
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML FORM OLUŞTURMA
  • CSS YATAY MENÜ YAPIMI
  • HTML RESİM EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML DİV ve SPAN NEDİR?
  • HTML ARKAPLANA MÜZİK EKLEME
  • KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.