Bu makalede PHP’deki dizilerin temellerine bakacağız. Bir dizinin nasıl oluşturulacağını ve ilişkisel ve çok boyutlu dizilerin nasıl kullanılacağını öğrenecek ve birçok dizi örneğini çalışırken göreceksiniz.
Yazı İçeriği
Dizi Nedir?
PHP’de dizi, birden çok öğeyi tek bir değişkende saklamanıza izin veren bir veri yapısıdır. Bu öğeler, anahtar/değer çiftleri olarak depolanır. Aslında, bir öğe listesi saklamanız gerektiğinde, bir dizi kullanabilirsiniz. Hemen hemen her zaman, bir dizinin tüm öğeleri aynı veri türündendir.
Örnek olarak, diyelim ki meyve isimlerini saklamak istiyorsunuz. Bir dizi kullanmadan, büyük olasılıkla farklı meyvelerin adlarını depolamak için birden çok değişken oluşturursunuz. Öte yandan, meyve adlarını saklamak için bir dizi kullanıyorsanız, şöyle görünebilir:
<?php<font></font>
$array_meyveler = array('Elma', 'Portakal', 'Kavun', 'Mango');<font></font>
?>
Gördüğünüz gibi $array_meyveler, farklı meyvelerin isimlerini saklamak için bir değişken kullandık. Belirtilmesi gereken önemli bir ayrıntı, daha sonra dizi değişkenine daha fazla öğe ekleyebileceğinizdir.
$array_meyveler.
Bir dizi değişkenindeki değerleri değiştirmenin birçok yolu vardır. Bunları bu makalenin ilerleyen bölümlerinde öğreneceğiz.
Bir dizi nasıl oluşturulur?
Bu bölümde, bir dizi değişkeninin nasıl başlatılacağını ve o değişkene nasıl değerler ekleneceğini öğreneceğiz.
Dizi başlatma söz konusu olduğunda, bunu yapmanın birkaç farklı yolu vardır. Çoğu durumda, dil yapısı array() yeni bir dizi oluşturmak için kullanılır.
<?php<font></font>
$array = array();<font></font>
?>
Önceki kod parçacığında, değişken $array boş bir diziye başlatılır.
PHP 5.4’ten beri, bir diziyi başlatmak için kısa sözdizimi de kullanabilirsiniz.
<?php<font></font>
$array = [];<font></font>
?>
Şimdi bir diziye nasıl eleman ekleneceğini görelim.
<?php<font></font>
$array = [];<font></font>
$array[] = ‘Bir’;<font></font>
$array[] = ‘İki’;<font></font>
$array[] = ‘Üç’;<font></font>
echo ‘<pre>’;<font></font>
print_r($array);<font></font>
?>
Yukarıdaki kod aşağıdaki çıktıyı verecektir:
Array<font></font>
(<font></font>
[0] => Bir<font></font>
[1] => İki<font></font>
[2] => Üç<font></font>
)
Dizi dizininin 0’dan başladığını unutmayın. Diziye dizin belirtmeden her yeni öğe eklediğinizde, diziye otomatik olarak bir dizin atanır.
Tabii ki, zaten eklenmiş değerlerle bir dizi de oluşturabilirsiniz. Hangi değerleri içereceğini zaten biliyorsanız, bir diziyi bildirmenin en hızlı yolu budur.
<?php<font></font>
$array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
?>
Dizi Öğelerine Nasıl Erişilir?
Önceki bölümde, bir dizi değişkenini başlatmanın yollarını tartıştık. Bu bölümde, dizi öğelerine erişmenin birkaç farklı yoluna bakalım.
Dizi öğelerine erişmenin ilk açık yolu, onları anahtar veya dizine göre almaktır.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 <font></font>
4 // get the first element of the $array array<font></font>
5 echo $array[0];<font></font>
6 echo “<br>”;<font></font>
7 <font></font>
8 // get the second element of the $array array<font></font>
9 echo $array[1];<font></font>
10 echo “<br>”;<font></font>
11 <font></font>
12 // get the third element of the $array array<font></font>
13 echo $array[2];<font></font>
14 echo “<br>”;<font></font>
15 ?>
Yukarıdaki kod aşağıdaki çıktıyı verecektir:
Bir<font></font>
İki<font></font>
Üç
Yukarıdaki kodu yazmanın daha temiz bir yolu, bir dizinin öğeleri üzerinde yineleme yapmak için bir foreach döngüsü kullanmaktır.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 <font></font>
4 foreach ($array as $element) {<font></font>
5 echo $element;<font></font>
6 echo ‘<br>’;<font></font>
7 }<font></font>
8 ?>
Yukarıdaki kod parçacığı aynı sonucu verecektir, ancak bunu elde etmek için çok daha az kod gerekmiştir.
For’a benzer şekilde, bir dizinin öğelerini yinelemek için bir döngü de kullanabilirsiniz .
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, Üç’];<font></font>
3 $array_length = count($array);<font></font>
4 <font></font>
5 for ($i = 0; $i < $array_length; ++$i) {<font></font>
6 echo $array[$i];<font></font>
7 echo ‘<br>’;<font></font>
8 }<font></font>
9 ?>
Bu durumda, for dizideki her bir dizin arasında dolaşıyoruz ve ardından o dizinde depolanan değeri çıkarıyoruz. Bu kod örneğinde, dizilerle çalışırken kullanacağınız en önemli işlevlerden birini kullandık: count. Dizide kaç eleman olduğunu saymak için kullanılır.
PHP’de Dizi Türleri
Bu bölümde, PHP’de kullanılabilecek farklı dizi türlerine bir göz atacağız.
Sayısal Olarak İndekslenmiş Diziler
Sayısal dizine sahip bir dizi, dizinlenmiş diziler kategorisine aittir. Aslında buraya kadar incelediğimiz örnekler indekslenmiş dizilerdir. Açıkça belirtmediğinizde sayısal bir dizin otomatik olarak atanır.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 ?>
Yukarıdaki örnekte, her öğe için bir dizin belirtmedik, bu nedenle otomatik olarak sayısal bir dizinle başlatılacaktır.
Elbette, aşağıdaki örnekte gösterildiği gibi, açık sayısal dizinlere sahip bir dizi de oluşturabilirsiniz.
1 <?php<font></font>
2 $array = [];<font></font>
3 $array[0] = ‘Bir’;<font></font>
4 $array[1] = ‘İki’;<font></font>
5 $array[2] = ‘Üç’;<font></font>
6 ?>
İlişkisel Diziler
İlişkisel dizi, sayısal diziye benzer, ancak dizi anahtarları için dize değerlerini kullanabilirsiniz.
Bir ilişkisel diziyi nasıl oluşturacağımızı görelim.
1 <?php<font></font>
2 $employee = [<font></font>
3 ‘isim’ => ‘John’,<font></font>
4 ’email’ => ‘john@example.com’,<font></font>
5 ‘telefon’ => ‘1234567890’,<font></font>
6 ];
Alternatif olarak, aşağıdaki sözdizimini de kullanabilirsiniz.
1 <?php<font></font>
2 $employee = [];<font></font>
3 $employee[‘isim’] = ‘Ali’;<font></font>
4 $employee[’email’] = ‘Ali@ornek.com’;<font></font>
5 $employee[‘telefon’] = ‘1234567890’;<font></font>
6 ?>
İlişkili bir dizinin değerlerine erişmek için bir döngü foreach veya bir dizin kullanabilirsiniz.
1 <?php<font></font>
2 $employee = [<font></font>
3 ‘isim’ => ‘Ali’,<font></font>
4 ’email’ => ‘ali@ornek.com’,<font></font>
5 ‘telefon’ => ‘1234567890’,<font></font>
6 ];<font></font>
7 <font></font>
8 // get the value of employee name<font></font>
9 echo $employee[‘name’];<font></font>
10 <font></font>
11 // get all values<font></font>
12 foreach ($employee as $key => $value) {<font></font>
13 echo $key . ‘:’ . $value;<font></font>
14 echo ‘<br>’;<font></font>
15 }<font></font>
16 ?>
Gördüğünüz gibi, bu örnekte, adı doğrudan anahtara erişerek aldık ve ardından foreach dizideki tüm anahtar/değer çiftlerini almak için bir döngü kullandık.
Çok Boyutlu Diziler
İncelediğimiz örneklerde dizi elemanları olarak skaler değerleri kullandık. Ancak, dizileri diğer dizilerin içinde öğeler olarak bile saklayabilirsiniz – bu çok boyutlu bir dizidir.
Bir örneğe bakalım.
1 <?php<font></font>
2 $employee = [<font></font>
3 ‘isim’ => ‘Ali’,<font></font>
4 ’email’ => ‘ali@ornek.com’,<font></font>
5 ‘telefon’ => ‘1234567890’,<font></font>
6 ‘hobiler’ => [‘Futbol’, ‘Dans’],<font></font>
7v ‘profiles’ => [‘facebook’ => ‘alifb’, ‘twitter’ => ‘alitw’]<font></font>
8 ];<font></font>
9 ?>
Gördüğünüz gibi dizideki anahtar hobiler hobi $employee dizisini içeriyor. Ek olarak, anahtar profiles, farklı profillerden oluşan bir ilişkisel dizi içerir.
Çok boyutlu bir dizinin değerlerini nasıl elde edebileceğimizi görelim.
1 <?php<font></font>
2 $employee = [<font></font>
3 ‘isim’ => ‘Ali’,<font></font>
4 ’email’ => ‘ali@ornek.com’,<font></font>
5 ‘telefon’ => ‘1234567890’,<font></font>
6 ‘hobiler’ => [‘Futbol’, ‘Dans’],<font></font>
7 ‘profiles’ => [‘facebook’ => ‘alifb’, ‘twitter’ => ‘alitw’]<font></font>
8 ];<font></font>
9 <font></font>
10 // giriş hobbiler<font></font>
11 11 echo $employee[‘hobbies’][0];<font></font>
12 // Futbol<font></font>
13 <font></font>
14 echo $employee[‘hobiler’][1];<font></font>
15 //Dans<font></font>
16 <font></font>
17 // giriş profiller<font></font>
18 echo $employee[‘profiles’][‘facebook’];<font></font>
19 // alifb<font></font>
20 <font></font>
21 echo $employee[‘profiller’][‘twitter’];<font></font>
22 // alitw<font></font>
23 ?>
Gördüğünüz gibi, çok boyutlu bir dizinin elemanlarına, dizinin her bir bölümünde o elemanın indeksi veya anahtarı kullanılarak erişilebilir.
Dizilerle Çalışmak İçin Bazı Yararlı İşlevler
Bu bölümde, dizi işlemleri için sıklıkla kullanılan birkaç kullanışlı dizi işlevine göz atacağız.
İşlev count
İşlev count, bir dizideki öğelerin sayısını saymak için kullanılır. Bir diziyi döngü ile yinelemek istiyorsanız bu genellikle kullanışlıdır.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 <font></font>
4 // print the number of elements in the array<font></font>
5 echo count($array);<font></font>
6 <font></font>
7 // the above code should output<font></font>
8 3<font></font>
9 ?>
İşlev is_array
Bu, dizilerle çalışmak için en kullanışlı işlevlerden biridir. Bir değişkenin bir dizi mi yoksa başka bir veri tipi mi tuttuğunu kontrol etmek için kullanılır.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 <font></font>
4 // check if the variable is an array<font></font>
5 if (is_array($array))<font></font>
6 {<font></font>
7 // perform some array operation<font></font>
8 }<font></font>
9 ?>
Bir dizi olduğundan emin değilseniz, herhangi bir dizi işlemi yapmadan önce her zaman bu işlevi kullanmalısınız.
İşlev in_array
Bir dizide bir öğenin olup olmadığını kontrol etmek istiyorsanız, işlev in_array tam da bunun içindir.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 <font></font>
4 // check if a variable is an array<font></font>
5 if (in_array(‘Bir’, $array))<font></font>
6 {<font></font>
7 echo ‘Evet’;<font></font>
8 }<font></font>
9 else<font></font>
10 {<font></font>
11 echo ‘Hayır’;<font></font>
12 }<font></font>
13 ?>
İşlevin ilk argümanı, in_array kontrol etmek istediğiniz öğedir ve ikinci argüman, dizinin kendisidir.
İşlev explode
İşlev explode, bir dizeyi birkaç parçaya böler ve onu bir dizi olarak döndürür. Örneğin, virgülle ayrılmış bir dizginiz olduğunu ve onu ayırıcı olarak virgül kullanarak bölmek istediğinizi varsayalım.
1 <?php<font></font>
2 $string = “Bir, İki, Üç”;<font></font>
3 <font></font>
4 // explode a string by comma<font></font>
5 $array = explode(“,”, $string);<font></font>
6 <font></font>
7 // output should be an array<font></font>
8 echo ‘<pre>’;<font></font>
9 print_r($array);<font></font>
10 <font></font>
11 // output<font></font>
12 /*Array<font></font>
13 (<font></font>
14 [0] => Bir<font></font>
15 [1] =>İki<font></font>
16 [2] => Üç<font></font>
17 )*/<font></font>
18 ?>
İşlevin ilk argümanı, explode sınırlandırılmış bir dizedir (geçilen dizenin bölüneceği dize) ve ikinci argüman dizenin kendisidir.
İşlev implode
Bu, bir işlevin tersidir explode – iletilen bir dizi ve birleştirilecek bir dize ve işlev implode, ilk parametrede belirtilen birleştirme dizesini kullanarak aralarındaki tüm dizi öğelerini birleştirerek bir dize oluşturur.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 <font></font>
4 $string = implode(“,”, $array);<font></font>
5 <font></font>
6 // output should be a string<font></font>
7 echo $string;<font></font>
8 <font></font>
9 // output: Bir, İki, Üç<font></font>
10 ?>
İşlevin ilk argümanı implode, birleştirme dizesidir ve ikinci argüman, birleştirilecek dizidir.
İşlev array_push
İşlev array_push, bir dizinin sonuna yeni öğeler eklemek için kullanılır.
1 <?php<font></font>
2 $array = [‘Bir’, ‘İki’, ‘Üç’];<font></font>
3 array_push($array, ‘Dört’);<font></font>
4 <font></font>
5 echo ‘<pre>’;<font></font>
6 print_r($array);<font></font>
7 <font></font>
8 // output<font></font>
9 /*Array<font></font>
10 (<font></font>
11 [0] => Bir<font></font>
12 [1] => İki<font></font>
13 [2] =>Üç<font></font>
14 [3] => Dört<font></font>
15 )*/<font></font>
16 ?>
İlk argüman bir dizidir ve onu takip eden argümanlar dizinin sonuna eklenecek öğelerdir.
İşlev array_pop
İşlev array_pop, dizinin sonundan bir öğeyi kaldırır.
1 <?php<font></font>
2 $array = ['Bir', 'İki', 'Üç'];<font></font>
3 $element = array_pop($array);<font></font>
4 <font></font>
5 echo '<pre>';<font></font>
6 print_r($array);<font></font>
7 <font></font>
8 // output<font></font>
9 /*Array<font></font>
10 (<font></font>
11 [0] => Bir<font></font>
12 [1] => İki<font></font>
13 )*/<font></font>
14 ?>
İşlev array_pop, diziden kaldırılan öğeyi döndürür, böylece onu bir değişkende saklayabilirsiniz. Bu özelliğin yanı sıra array_push yığınlar gibi veri yapılarını uygulamak için kullanışlıdır.
Çözüm
PHP’de dizilere başlamak için ihtiyacınız olan tek şey bu. Dizileri nasıl oluşturacağınızı ve onlardan nasıl eleman alacağınızı öğrendiniz.
Artık PHP’deki farklı dizi türlerini biliyorsunuz ve PHP’nin en kullanışlı yerleşik dizi işlevlerinden bazılarını çalışırken gördünüz.