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
yönetici 17/08/2020
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- 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