PHP programlama dilinde diziler (Arrays), birden fazla verinin tek bir değişken içerisinde saklanmasını sağlayan veri yapılarıdır. Normal değişkenler yalnızca tek bir değer tutabilirken diziler sayesinde birden fazla metin, sayı veya farklı veri türleri bir arada saklanabilir. Web geliştirme sürecinde kullanıcı bilgilerini listelemek, ürünleri saklamak, veritabanından gelen kayıtları işlemek ve birden fazla veriyi düzenli şekilde yönetmek için dizilerden sıkça yararlanılır.
PHP'de diziler, anahtar ve değer (key-value) mantığıyla çalışır. Her dizi elemanı bir anahtara ve bu anahtara karşılık gelen bir değere sahiptir. Dizilerde anahtarlar sayısal veya metinsel olabilir. Bu özellik sayesinde verilere sıralı indekslerle veya belirlenen isimlerle erişmek mümkündür.
PHP'de en çok kullanılan dizi türleri indeksli diziler, ilişkisel diziler ve çok boyutlu dizilerdir. Bu dizi türleri, saklanacak verinin yapısına ve kullanım amacına göre farklı şekillerde tercih edilir.
PHP'de dizi oluşturmak için array() fonksiyonu veya köşeli parantez ([]) kullanılır. Güncel PHP sürümlerinde köşeli parantez yöntemi daha sık tercih edilmektedir. Bir dizi oluşturulduktan sonra içerisine birden fazla değer eklenebilir ve bu değerlere anahtarları üzerinden erişilebilir.
PHP'de dizi oluşturmanın genel söz dizimi şu şekildedir:
<?php
$dizi = array("Elma", "Armut", "Muz");
// Alternatif kullanım $dizi = ["Elma", "Armut", "Muz"]; ?>
Bu örnekte $dizi isimli bir değişken oluşturulmuş ve içerisine üç farklı meyve eklenmiştir. Dizi elemanları virgülle birbirinden ayrılır. Köşeli parantez kullanılarak oluşturulan ikinci yöntem, array() fonksiyonuyla aynı sonucu verir.
Oluşturulan bir dizinin elemanlarına erişmek için dizinin adı ve ilgili elemanın indeksi kullanılır. PHP'de indeksli dizilerin ilk elemanı varsayılan olarak 0 indeksinden başlar.
<?php
$meyveler = ["Elma", "Armut", "Muz"];
echo $meyveler[0]; echo $meyveler[1]; echo $meyveler[2]; ?>
Bu örnekte ekrana sırasıyla Elma, Armut ve Muz değerleri yazdırılır. Çünkü ilk elemanın indeksi 0, ikinci elemanın indeksi 1 ve üçüncü elemanın indeksi 2 şeklindedir.
İndeksli diziler, elemanlarına sayısal anahtarlar üzerinden erişilen dizi türüdür. PHP'de indeksli dizilerde anahtarlar varsayılan olarak 0'dan başlayarak sıralanır. Bu diziler özellikle sıralı verilerin saklanması gereken durumlarda kullanılır.
İndeksli dizi oluşturmak için aşağıdaki yöntem kullanılabilir:
<?php
$ogrenciler = [
"Ahmet",
"Mehmet",
"Ayşe",
"Zeynep"
];
echo $ogrenciler[0]; ?>
Bu örnekte $ogrenciler isimli bir dizi oluşturulmuştur. Dizi içerisinde dört farklı öğrenci adı bulunmaktadır. $ogrenciler[0] ifadesi kullanıldığında dizinin ilk elemanı olan Ahmet değeri ekrana yazdırılır.
PHP'de indeksli dizilere yeni eleman eklemek de oldukça kolaydır. Bunun için dizinin sonuna köşeli parantez kullanılarak yeni bir değer atanabilir.
<?php
$renkler = ["Kırmızı", "Mavi", "Yeşil"];
$renkler[] = "Sarı";
print_r($renkler); ?>
Bu örnekte başlangıçta üç elemandan oluşan $renkler dizisine Sarı değeri eklenmiştir. Köşeli parantez içerisine herhangi bir indeks yazılmadığında PHP yeni elemanı dizinin sonuna ekler.
İlişkisel diziler (Associative Arrays), elemanlarına sayısal indeksler yerine metinsel anahtarlar kullanılarak erişilen dizi türüdür. Bu dizilerde her değere anlamlı bir anahtar atanabilir. Özellikle kullanıcı bilgileri, ürün özellikleri ve ayar verilerinin saklanmasında ilişkisel dizilerden sıkça yararlanılır.
İlişkisel dizi oluşturmak için anahtar ve değer arasında => operatörü kullanılır.
<?php
$ogrenci = [
"ad" => "Ahmet",
"soyad" => "Yılmaz",
"yas" => 20,
"bolum" => "Bilgisayar Programcılığı"
];
echo $ogrenci["ad"]; echo $ogrenci["soyad"]; ?>
Bu örnekte $ogrenci isimli ilişkisel bir dizi oluşturulmuştur. Dizinin içerisinde ad, soyad, yas ve bolum olmak üzere dört farklı anahtar bulunmaktadır. Değerlere erişmek için ilgili anahtarın ismi köşeli parantez içerisinde yazılır.
Örneğin, $ogrenci["ad"] ifadesi kullanıldığında Ahmet değeri, $ogrenci["yas"] ifadesi kullanıldığında ise 20 değeri elde edilir. Bu yöntem sayesinde dizideki verilerin hangi bilgiyi temsil ettiği daha kolay anlaşılır.
İlişkisel dizilere yeni eleman eklemek veya mevcut elemanların değerlerini değiştirmek de mümkündür.
<?php
$urun = [
"ad" => "Laptop",
"fiyat" => 25000
];
// Yeni eleman ekleme $urun["stok"] = 15;
// Mevcut elemanı değiştirme $urun["fiyat"] = 27000;
print_r($urun); ?>
Bu örnekte $urun dizisine stok anahtarı eklenmiş ve fiyat anahtarının değeri değiştirilmiştir. Böylece ilişkisel diziler kullanılarak mevcut veriler üzerinde kolayca işlem yapılabilir.
Çok boyutlu diziler (Multidimensional Arrays), içerisinde bir veya daha fazla dizi barındıran dizi türüdür. Başka bir ifadeyle bir dizinin elemanları da dizi olabilir. Bu yapı, birbiriyle ilişkili birden fazla veri grubunun düzenli şekilde saklanmasını sağlar.
Özellikle birden fazla kullanıcının, ürünün veya öğrencinin bilgilerinin tutulması gerektiğinde çok boyutlu diziler oldukça kullanışlıdır.
Basit bir çok boyutlu dizi örneği şu şekildedir:
<?php
$ogrenciler = [
["Ahmet", 20, "Bilgisayar"],
["Mehmet", 22, "Elektrik"],
["Ayşe", 19, "Grafik Tasarım"]
];
echo $ogrenciler[0][0]; echo $ogrenciler[1][1]; ?>
Bu örnekte $ogrenciler isimli bir dizi oluşturulmuştur. Dizinin her elemanı başka bir diziden oluşmaktadır. İlk indeks hangi öğrenciye erişileceğini, ikinci indeks ise ilgili öğrencinin hangi bilgisine ulaşılacağını belirtir.
Örneğin, $ogrenciler[0][0] ifadesi ilk öğrencinin adını yani Ahmet değerini döndürür. $ogrenciler[1][1] ifadesi ise ikinci öğrencinin yaşını yani 22 değerini verir.
Çok boyutlu diziler ilişkisel diziler kullanılarak da oluşturulabilir. Bu yöntem, verilerin daha anlaşılır anahtarlarla saklanmasını sağlar.
<?php
$ogrenciler = [
[
"ad" => "Ahmet",
"yas" => 20,
"bolum" => "Bilgisayar"
],
[
"ad" => "Mehmet",
"yas" => 22,
"bolum" => "Elektrik"
]
];
echo $ogrenciler[0]["ad"]; echo $ogrenciler[1]["bolum"]; ?>
Bu örnekte her öğrenciye ait bilgiler ilişkisel dizi şeklinde saklanmıştır. Böylece öğrenci adı, yaşı ve bölümü gibi bilgilere anlamlı anahtarlar üzerinden erişilebilir.
PHP dizilerinde birden fazla eleman bulunduğunda her elemana tek tek erişmek yerine döngülerden yararlanılabilir. Döngüler sayesinde dizinin bütün elemanları sırasıyla okunabilir ve her eleman üzerinde farklı işlemler gerçekleştirilebilir.
PHP'de dizilerle birlikte en sık kullanılan döngüler foreach ve for döngüleridir.
foreach döngüsü, dizilerin elemanlarını sırasıyla dolaşmak için kullanılan özel bir döngü yapısıdır. Dizinin eleman sayısını önceden bilmeye gerek kalmadan bütün elemanlara erişilmesini sağlar. Bu nedenle PHP'de dizilerle çalışırken en çok tercih edilen döngülerden biridir.
Foreach döngüsünün genel söz dizimi şu şekildedir:
<?php
foreach ($dizi as $eleman) {
// Her eleman için çalışacak kodlar
}
?>
Bu yapıda $dizi dolaşılacak diziyi, $eleman ise her adımda elde edilen değeri temsil eder. Döngü, dizinin bütün elemanları tamamlanana kadar çalışmaya devam eder.
Örneğin, bir dizide bulunan meyveleri ekrana yazdırmak için aşağıdaki kod kullanılabilir:
<?php
$meyveler = ["Elma", "Armut", "Muz", "Çilek"];
foreach ($meyveler as $meyve) { echo $meyve . "
"; } ?>
Bu örnekte foreach döngüsü $meyveler dizisini baştan sona dolaşır. Her adımda bir meyve değeri $meyve değişkenine aktarılır ve ekrana yazdırılır. Böylece dizide bulunan bütün meyveler sırasıyla görüntülenir.
for döngüsü, belirli bir başlangıç ve bitiş koşuluna göre çalışan döngü yapısıdır. İndeksli dizilerde elemanlara sıra numaraları üzerinden erişmek için kullanılabilir. Özellikle dizinin eleman sayısı kadar işlem yapılması gerektiğinde tercih edilir.
Örnek olarak bir dizinin elemanlarını for döngüsüyle ekrana yazdırabiliriz:
<?php
$renkler = ["Kırmızı", "Mavi", "Yeşil", "Sarı"];
for ($i = 0; i < count(renkler); $i++) { echo
r
e
n
k
l
e
r
[
i] . "
"; } ?>
Bu örnekte count() fonksiyonu dizinin eleman sayısını bulmak için kullanılmıştır. for döngüsü 0 indeksinden başlar ve dizinin eleman sayısına ulaşana kadar çalışır. Her adımda $renkler[$i] ifadesiyle ilgili dizi elemanına erişilir.
foreach ve for döngüleri benzer işlemler için kullanılabilse de foreach döngüsü diziler üzerinde daha pratik bir kullanım sunar. for döngüsü ise özellikle indeks değerinin kontrol edilmesi gereken durumlarda tercih edilebilir.
PHP, diziler üzerinde işlem yapmayı kolaylaştıran çok sayıda hazır fonksiyon sunar. Bu fonksiyonlar sayesinde dizilerin eleman sayısı öğrenilebilir, yeni elemanlar eklenebilir, mevcut elemanlar silinebilir veya diziler sıralanabilir.
PHP'de sık kullanılan dizi fonksiyonlarından bazıları şunlardır:
count() fonksiyonu, bir dizinin içerisinde kaç eleman bulunduğunu öğrenmek için kullanılır. Özellikle döngülerde ve dizi kontrollerinde sıkça tercih edilir.
<?php
$meyveler = ["Elma", "Armut", "Muz", "Çilek"];
echo count($meyveler); ?>
Bu örnekte dizide toplam dört eleman bulunduğu için count() fonksiyonu 4 sonucunu döndürür.
array_push() fonksiyonu, bir dizinin sonuna bir veya birden fazla yeni eleman eklemek için kullanılır.
<?php
$renkler = ["Kırmızı", "Mavi"];
array_push($renkler, "Yeşil", "Sarı");
print_r($renkler); ?>
Bu örnekte $renkler dizisinin sonuna Yeşil ve Sarı değerleri eklenmiştir. Böylece dizinin eleman sayısı dörte yükselmiştir.
array_pop() fonksiyonu, bir dizinin son elemanını silmek için kullanılır. Silinen elemanı geri döndürür.
<?php
$meyveler = ["Elma", "Armut", "Muz"];
array_pop($meyveler);
print_r($meyveler); ?>
Bu örnekte dizinin son elemanı olan Muz silinir. İşlem tamamlandığında dizide yalnızca Elma ve Armut değerleri kalır.
array_shift() fonksiyonu, dizinin ilk elemanını silmek için kullanılır. Silinen elemanı geri döndürür ve indeksli dizilerde kalan sayısal anahtarları yeniden düzenler.
<?php
$renkler = ["Kırmızı", "Mavi", "Yeşil"];
array_shift($renkler);
print_r($renkler); ?>
Bu örnekte dizinin ilk elemanı olan Kırmızı silinir. İşlem sonrasında dizide Mavi ve Yeşil değerleri kalır.
array_unshift() fonksiyonu, bir dizinin başına bir veya birden fazla yeni eleman eklemek için kullanılır.
<?php
$renkler = ["Mavi", "Yeşil"];
array_unshift($renkler, "Kırmızı");
print_r($renkler); ?>
Bu örnekte Kırmızı değeri dizinin ilk elemanı olarak eklenir. Böylece dizinin yeni sıralaması Kırmızı, Mavi ve Yeşil şeklinde olur.
sort() fonksiyonu, bir dizinin elemanlarını küçükten büyüğe veya alfabetik olarak artan sırada düzenlemek için kullanılır. Bu işlem sırasında sayısal indeksler yeniden oluşturulur.
<?php
$sayilar = [40, 10, 30, 20];
sort($sayilar);
print_r($sayilar); ?>
Bu örnekte dizinin elemanları küçükten büyüğe doğru sıralanır. İşlem sonucunda dizi 10, 20, 30 ve 40 değerlerinden oluşur.
rsort() fonksiyonu, dizinin elemanlarını büyükten küçüğe veya alfabetik olarak azalan sırada düzenlemek için kullanılır. sort() fonksiyonunun ters sıralama yapan karşılığıdır.
<?php
$sayilar = [10, 40, 20, 30];
rsort($sayilar);
print_r($sayilar); ?>
Bu örnekte sayılar büyükten küçüğe doğru sıralanır. İşlem sonucunda dizi 40, 30, 20 ve 10 değerlerini içerir.
in_array() fonksiyonu, belirli bir değerin dizide bulunup bulunmadığını kontrol etmek için kullanılır. Değer dizide bulunuyorsa true, bulunmuyorsa false sonucu döndürür.
<?php
$meyveler = ["Elma", "Armut", "Muz"];
if (in_array("Muz", $meyveler)) { echo "Muz dizide bulunmaktadır."; } else { echo "Muz dizide bulunmamaktadır."; } ?>
Bu örnekte in_array() fonksiyonu Muz değerinin dizide bulunup bulunmadığını kontrol eder. Değer dizide bulunduğu için if bloğu çalışır ve ilgili mesaj ekrana yazdırılır.
array_merge() fonksiyonu, iki veya daha fazla diziyi birleştirerek yeni bir dizi oluşturmak için kullanılır. Bu fonksiyon özellikle farklı kaynaklardan elde edilen verilerin tek bir dizide toplanması gerektiğinde kullanışlıdır.
<?php
$dizi1 = ["Elma", "Armut"];
$dizi2 = ["Muz", "Çilek"];
m
e
y
v
e
l
e
r
=
a
r
r
a
y
m
e
r
g
e
(
dizi1, $dizi2);
print_r($meyveler); ?>
Bu örnekte iki farklı dizi array_merge() fonksiyonu kullanılarak birleştirilmiştir. Yeni oluşturulan $meyveler dizisi dört elemandan oluşur.
PHP dizilerinde yalnızca yeni eleman eklemek değil, mevcut elemanları silmek ve değiştirmek de mümkündür. Dizinin belirli bir elemanını silmek için unset() fonksiyonu kullanılabilir. Mevcut bir elemanın değerini değiştirmek için ise ilgili indeks veya anahtara yeni bir değer atanması yeterlidir.
Bir dizinin belirli bir elemanını silmek için aşağıdaki örnek incelenebilir:
<?php
$meyveler = ["Elma", "Armut", "Muz"];
unset($meyveler[1]);
print_r($meyveler); ?>
Bu örnekte unset() fonksiyonu kullanılarak dizinin 1 indeksindeki Armut değeri silinmiştir. unset() fonksiyonu elemanı siler ancak diğer sayısal indeksleri otomatik olarak yeniden sıralamaz.
Bir dizinin mevcut elemanını değiştirmek için ise aşağıdaki yöntem kullanılabilir:
<?php
$meyveler = ["Elma", "Armut", "Muz"];
$meyveler[1] = "Çilek";
print_r($meyveler); ?>
Bu örnekte dizinin 1 indeksindeki Armut değeri Çilek olarak değiştirilmiştir. Dizinin diğer elemanları bu işlemden etkilenmez.
İlişkisel dizilerde bazen yalnızca anahtarları veya yalnızca değerleri elde etmek gerekebilir. PHP'de bu işlemler için array_keys() ve array_values() fonksiyonları kullanılır.
array_keys() fonksiyonu, bir dizide bulunan bütün anahtarları yeni bir indeksli dizi olarak döndürür.
<?php
$ogrenci = [
"ad" => "Ahmet",
"yas" => 20,
"bolum" => "Bilgisayar"
];
a
n
a
h
t
a
r
l
a
r
=
a
r
r
a
y
k
e
y
s
(
ogrenci);
print_r($anahtarlar); ?>
Bu örnekte array_keys() fonksiyonu kullanılarak dizinin ad, yas ve bolum anahtarları elde edilir.
array_values() fonksiyonu, bir dizide bulunan bütün değerleri yeni bir indeksli dizi olarak döndürür. Özellikle ilişkisel dizilerde yalnızca değerlerle işlem yapılması gerektiğinde tercih edilir.
<?php
$ogrenci = [
"ad" => "Ahmet",
"yas" => 20,
"bolum" => "Bilgisayar"
];
d
e
g
e
r
l
e
r
=
a
r
r
a
y
v
a
l
u
e
s
(
ogrenci);
print_r($degerler); ?>
Bu örnekte array_values() fonksiyonu kullanılarak Ahmet, 20 ve Bilgisayar değerleri elde edilir. Sonuç olarak yeni bir indeksli dizi oluşturulur.
PHP'de indeksli, ilişkisel ve çok boyutlu diziler farklı veri saklama ihtiyaçlarına göre kullanılır. Bu dizi türlerinin temel özelliklerini bilmek, doğru veri yapısını seçmek açısından önemlidir.
Örneğin, bir alışveriş sitesindeki ürün isimlerini saklamak için indeksli diziler kullanılabilir. Ürünün adı, fiyatı ve stok miktarı gibi bilgileri saklamak için ilişkisel diziler tercih edilebilir. Birden fazla ürünün tüm özellikleriyle birlikte tutulması gerektiğinde ise çok boyutlu dizilerden yararlanılabilir.
PHP dizilerinin kullanımını daha iyi anlamak için ürün bilgilerini saklayan basit bir örnek inceleyebiliriz. Bu örnekte birden fazla ürünün adı, fiyatı ve stok bilgisi çok boyutlu ilişkisel bir dizi içerisinde tutulmaktadır. Foreach döngüsü kullanılarak bütün ürünler ekrana yazdırılmaktadır.
<?php
$urunler = [
[
"ad" => "Laptop",
"fiyat" => 25000,
"stok" => 10
],
[
"ad" => "Telefon",
"fiyat" => 15000,
"stok" => 20
],
[
"ad" => "Tablet",
"fiyat" => 10000,
"stok" => 5
]
];
foreach ($urunler as $urun) { echo "Ürün: " . $urun["ad"] . "
"; echo "Fiyat: " . $urun["fiyat"] . " TL
"; echo "Stok: " . $urun["stok"] . "
"; echo "
"; } ?>
Bu örnekte üç farklı ürünün bilgileri $urunler dizisi içerisinde saklanmıştır. Her ürün kendi içerisinde ilişkisel bir dizi olarak tanımlanmıştır. foreach döngüsü bütün ürünleri sırayla dolaşır ve her ürünün adı, fiyatı ve stok miktarını ekrana yazdırır.
Bu yapı özellikle e-ticaret uygulamalarında, ürün listelerinde ve yönetim panellerinde kullanılabilecek temel bir veri saklama yöntemidir.
PHP diziler, birden fazla verinin düzenli ve kolay yönetilebilir şekilde saklanmasını sağlayan temel veri yapılarından biridir. İndeksli diziler sıralı verilerin tutulmasını sağlarken ilişkisel diziler verilerin anlamlı anahtarlarla saklanmasına yardımcı olur. Çok boyutlu diziler ise birden fazla veri grubunun tek bir yapı içerisinde yönetilmesini mümkün kılar.
count(), array_push(), array_pop(), sort() ve array_merge() gibi hazır dizi fonksiyonları sayesinde diziler üzerinde ekleme, silme, sıralama ve birleştirme işlemleri kolaylıkla gerçekleştirilebilir. Foreach ve for döngüleriyle birlikte kullanıldığında ise dizideki bütün elemanlar üzerinde hızlı ve düzenli şekilde işlem yapılabilir.
PHP dizilerini doğru şekilde kullanmayı öğrenmek, dinamik web uygulamaları geliştirmek için önemli bir adımdır. Özellikle veritabanından gelen kayıtların işlenmesi, kullanıcı bilgilerinin yönetilmesi ve ürün listelerinin oluşturulması gibi birçok işlemde dizilerden yararlanılır.
Toplam 39 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.