PHP Diziler (Arrays)

PHP dizileri, büyük miktarda veriyi düzenlemek ve işlemek için güçlü bir araç sunar. İndeksli diziler, sayısal indekslerle çalışırken; ilişkisel diziler, adlandırılmış anahtarlarla verilere ulaşmanıza olanak tanır. Ayrıca, PHP'nin sunduğu farklı dizi sıralama fonksiyonları sayesinde, verileri düzenlemek ve erişmek daha da kolaylaşır. Daha fazla bilgi için lütfen konuyu inceleyin!

PHP Diziler (Arrays)

PHP Dizi Nedir?

Dizi, aynı anda birden fazla değer tutabilen özel bir değişkendir.

Bir öğe listeniz varsa (örneğin araba adları listesi), arabaları tek değişkenlerde depolamak şöyle görünebilir.

$araba1 = "Volvo";
$araba2 = "BMW";
$araba3 = "Toyota";

Ancak, ya arabalar arasında dolaşmak ve belirli bir tanesini bulmak isterseniz? Peki ya 3 değil de 300 arabanız varsa?

Çözüm bir dizi oluşturmaktır!

Bir dizi birçok değeri tek bir isim altında tutabilir ve değerlere bir indeks numarasına başvurarak erişebilirsiniz.

PHP'de Dizi Oluşturma

PHP'de array() işlevi bir dizi oluşturmak için kullanılır.

array();

PHP'de üç tür dizi vardır:

  1. İndeksli diziler - Sayısal indeksli diziler
  2. İlişkisel diziler - Adlandırılmış anahtarlara sahip diziler
  3. Çok boyutlu diziler - Bir veya daha fazla dizi içeren diziler

Bir Dizinin Uzunluğunu Alma - count() Fonksiyonu

count() fonksiyonu bir dizinin uzunluğunu (eleman sayısını) döndürmek için kullanılır.

<?php
$arabalar = array("Volvo", "BMW", "Toyota");
echo count($arabalar);
?>

PHP İndeksli Diziler

İndeksli diziler oluşturmanın iki yolu vardır:

İndeks otomatik olarak atanabilir (indeks her zaman 0'dan başlar), bunun gibi:

$arabalar = array("Volvo", "BMW", "Toyota");

veya dizin manuel olarak atanabilir:

$arabalar[0] = "Volvo";
$arabalar[1] = "BMW";
$arabalar[2] = "Toyota";

Aşağıdaki örnek $arabalar adında dizinli bir dizi oluşturur, diziye üç öğe atar ve ardından dizi değerlerini içeren bir metin yazdırır:

<?php
$arabalar = array("Volvo", "BMW", "Toyota");
echo "Marka: " . $arabalar[0] . ", " . $arabalar[1] . " and " . $arabalar[2] . ".";
?>

İndeksli Dizi İçinde Döngü

İndeksli bir dizinin tüm değerleri arasında döngü oluşturmak ve bunları yazdırmak için aşağıdaki gibi bir for döngüsü kullanabilirsiniz:

<?php
$arabalar = array("Volvo", "BMW", "Toyota");
$arrlength = count($arabalar);

for($x = 0; $x < $arrlength; $x++) {
  echo $arabalar[$x];
  echo "<br>";
}
?>

PHP İlişkisel Diziler

İlişkisel diziler, kendilerine atadığınız adlandırılmış anahtarları kullanan dizilerdir.

İlişkisel bir dizi oluşturmanın iki yolu vardır: 

$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

ya da

$yas['Peter'] = "35";
$yas['Ben'] = "37";
$yas['Joe'] = "43";

Adlandırılmış anahtarlar daha sonra bir komut dosyasında kullanılabilir:

<?php
$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter " . $age['yas'] . " yaşındadır.";
?>

İlişkisel Dizi İçinde Döngü

İlişkisel bir dizinin tüm değerleri arasında döngü oluşturmak ve bunları yazdırmak için aşağıdaki gibi bir foreach döngüsü kullanabilirsiniz.

<?php
$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

foreach($yas as $x => $x_deger) {
  echo "Anahtar=" . $x . ", Değer=" . $x_deger;
  echo "<br>";
}
?>

PHP Çok Boyutlu Diziler

Çok boyutlu dizi, bir veya daha fazla dizi içeren bir dizidir.

PHP iki, üç, dört, beş veya daha fazla derinliğe sahip çok boyutlu dizileri destekler. Ancak, üç seviyeden daha derin dizileri yönetmek çoğu insan için zordur.

Bir dizinin boyutu, bir elemanı seçmek için ihtiyacınız olan indeks sayısını gösterir.

  • İki boyutlu bir dizide, bir öğeyi seçmek için iki indekse ihtiyacınız vardır
  • Üç boyutlu bir dizide bir elemanı seçmek için üç indekse ihtiyacınız vardır

PHP İki Boyutlu Diziler

İki boyutlu bir dizi, dizilerin bir dizisidir (üç boyutlu bir dizi, dizilerin dizilerinin bir dizisidir).

İlk olarak, aşağıdaki tabloya bir göz atın:

Marka Stok Satılan
Volvo 22 18
BMW 15 13
Saab 5 2
Land Rover 17 15

Yukarıdaki tablodaki verileri aşağıdaki gibi iki boyutlu bir dizide saklayabiliriz:

$arabalar = array (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

İki boyutlu $arabalar dizisi dört dizi içerir ve iki indeksi vardır: satır ve sütun.

arabalar dizisinin elemanlarına erişmek için iki indeksi (satır ve sütun) işaret etmeliyiz:

<?php
echo $arabalar[0][0].": Stok: ".$cars[0][1].", Satılan: ".$cars[0][2].".<br>";
echo $arabalar[1][0].": Stok: ".$cars[1][1].", Satılan: ".$cars[1][2].".<br>";
echo $arabalar[2][0].": Stok: ".$cars[2][1].", Satılan: ".$cars[2][2].".<br>";
echo $arabalar[3][0].": Stok: ".$cars[3][1].", Satılan: ".$cars[3][2].".<br>";
?>

Ayrıca $arabalar dizisinin elemanlarını almak için başka bir for döngüsünün içine bir for döngüsü koyabiliriz (hala iki indekse işaret etmemiz gerekir):

<?php
for ($row = 0; $row < 4; $row++) {
  echo "<p><b>Satır numarası $row</b></p>";
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    echo "<li>".$arabalar[$row][$col]."</li>";
  }
  echo "</ul>";
}
?>

PHP - Diziler İçin Sıralama İşlevleri

Bu bölümde, aşağıdaki PHP dizi sıralama işlevlerini inceleyeceğiz:

  • sort() - dizileri artan sırada sıralar
  • rsort() - dizileri azalan sırada sıralar
  • asort() - ilişkisel dizileri değere göre artan sırada sıralar
  • ksort() - ilişkisel dizileri anahtara göre artan sırada sıralar
  • arsort() - ilişkisel dizileri değere göre azalan sırada sıralar
  • krsort() - ilişkisel dizileri anahtara göre azalan sırada sıralar

Diziyi Artan Sırada Sıralama - sort()

Aşağıdaki örnek $arabalar dizisinin elemanlarını artan alfabetik sıraya göre sıralar:

<?php
$arabalar = array("Volvo", "BMW", "Toyota");
sort($arabalar);
?>

Aşağıdaki örnek $sayilar dizisinin elemanlarını artan sayısal sıraya göre sıralar:

<?php
$sayilar = array(4, 6, 2, 22, 11);
sort($sayilar);
?>

Diziyi Azalan Sırada Sıralama - rsort()

Aşağıdaki örnek $arabalar dizisinin elemanlarını azalan alfabetik sıraya göre sıralar:

<?php
$arabalar = array("Volvo", "BMW", "Toyota");
rsort($arabalar);
?>

Aşağıdaki örnek $sayilar dizisinin elemanlarını azalan sayısal sıraya göre sıralar:

<?php
$sayilar = array(4, 6, 2, 22, 11);
rsort($sayilar);
?>

Diziyi (Artan Sıralı), Değere Göre Sırala - asort()

Aşağıdaki örnek, bir ilişkisel diziyi değere göre artan sırada sıralar:

<?php
$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
asort($yas);
?>

Diziyi Anahtara Göre Sırala (Artan Sıra) - ksort()

Aşağıdaki örnek, bir ilişkisel diziyi anahtara göre artan sırada sıralar:

<?php
$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
ksort($yas);
?>

Diziyi (Azalan Sırayla), Değere Göre Sırala - arsort()

Aşağıdaki örnek, bir ilişkisel diziyi değere göre azalan sırada sıralar:

<?php
$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
arsort($yas);
?>

Diziyi Anahtara Göre Sırala (Azalan Sıra) - krsort()

Aşağıdaki örnek, bir ilişkisel diziyi anahtara göre azalan sırada sıralar:

<?php
$yas = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
krsort($yas);
?>

Tüm PHP Dizi Fonksiyonları

İşlev Açıklama
array() Bir dizi oluşturur.
array_change_key_case() Bir dizideki tüm anahtarları küçük harfe veya büyük harfe dönüştürür.
array_chunk() Bir diziyi alt dizilere böler.
array_column() Giriş dizisindeki tek bir sütundan değerleri döndürür.
array_combine() Bir "anahtarlar" dizisi ve bir "değerler" dizisi kullanarak bir dizi oluşturur.
array_count_values() Bir dizideki tüm değerleri sayar.
array_diff() Dizileri karşılaştırır ve farklılıkları döndürür (sadece değerleri karşılaştırır).
array_diff_assoc() Dizileri karşılaştırır ve farklılıkları döndürür (anahtarları ve değerleri karşılaştırır).
array_diff_key() Dizileri karşılaştırır ve farklılıkları döndürür (sadece anahtarları karşılaştırır).
array_diff_uassoc() Dizileri karşılaştırır ve farklılıkları döndürür (anahtarları ve değerleri kullanarak bir kullanıcı tanımlı karşılaştırma işlemini kullanır).
array_diff_ukey() Dizileri karşılaştırır ve farklılıkları döndürür (sadece anahtarları kullanarak bir kullanıcı tanımlı karşılaştırma işlemini kullanır).
array_fill() Bir diziyi değerlerle doldurur.
array_fill_keys() Anahtarları belirterek bir diziyi değerlerle doldurur.
array_filter() Bir geri çağrı işlevini kullanarak bir dizinin değerlerini filtreler.
array_flip() Bir dizideki tüm anahtarları ve değerleri yer değiştirir.
array_intersect() Dizileri karşılaştırır ve eşleşenleri döndürür (sadece değerleri karşılaştırır).
array_intersect_assoc() Dizileri karşılaştırır ve eşleşenleri döndürür (anahtarları ve değerleri karşılaştırır).
array_intersect_key() Dizileri karşılaştırır ve eşleşenleri döndürür (sadece anahtarları karşılaştırır).
array_intersect_uassoc() Dizileri karşılaştırır ve eşleşenleri döndürür (anahtarları ve değerleri kullanarak bir kullanıcı tanımlı karşılaştırma işlemini kullanır).
array_intersect_ukey() Dizileri karşılaştırır ve eşleşenleri döndürür (sadece anahtarları kullanarak bir kullanıcı tanımlı karşılaştırma işlemini kullanır).
array_key_exists() Belirtilen anahtarın dizide var olup olmadığını kontrol eder.
array_keys() Bir dizinin tüm anahtarlarını döndürür.
array_map() Bir dizinin her bir değerini bir kullanıcı tanımlı işleme gönderir ve yeni değerleri döndürür.
array_merge() Bir veya daha fazla diziyi birleştirir.
array_merge_recursive() Bir veya daha fazla diziyi rekürsif olarak birleştirir.
array_multisort() Birden çok veya çok boyutlu dizileri sıralar.
array_pad() Belirtilen sayıda öğe ekler ve belirtilen bir değeri kullanır.
array_pop() Bir dizinin son öğesini siler ve sildiği öğeyi döndürür.
array_product() Bir dizideki değerlerin çarpımını hesaplar.
array_push() Bir dizinin sonuna bir veya daha fazla öğe ekler.
array_rand() Bir diziden bir veya daha fazla rasgele anahtar döndürür.
array_reduce() Bir diziyi bir kullanıcı tanımlı işleme tabloya dönüştürür.
array_replace() İlk dizi değerlerini sonraki dizilerin değerleri ile değiştirir.
array_replace_recursive() İlk dizi değerlerini sonraki dizilerin değerleri ile rekürsif olarak değiştirir.
array_reverse() Bir diziyi ters sırada döndürür.
array_search() Bir dizide belirtilen bir değeri arar ve anahtarını döndürür.
array_shift() Bir dizinin ilk öğesini kaldırır ve kaldırdığı öğeyi döndürür.
array_slice() Bir dizinin belirli kısımlarını döndürür.
array_splice() Bir dizinin belirtilen öğelerini kaldırır ve/veya değiştirir.
array_sum() Bir dizideki değerlerin toplamını döndürür.
array_udiff() Dizileri karşılaştırır ve farklılıkları döndürür (sadece değerleri kullanarak bir kullanıcı tanımlı anahtar karşılaştırma işlemini kullanır).
array_udiff_assoc() Dizileri karşılaştırır ve farklılıkları döndürür (anahtarları karşılaştırmak için yerleşik bir işlevi ve değerleri karşılaştırmak için bir kullanıcı tanımlı işlemi kullanır).
array_udiff_uassoc() Dizileri karşılaştırır ve farklılıkları döndürür (anahtarları ve değerleri karşılaştırmak için iki kullanıcı tanımlı anahtar karşılaştırma işlemini kullanır).
array_uintersect() Dizileri karşılaştırır ve eşleşenleri döndürür (sadece değerleri kullanarak bir kullanıcı tanımlı anahtar karşılaştırma işlemini kullanır).
array_uintersect_assoc() Dizileri karşılaştırır ve eşleşenleri döndürür (anahtarları karşılaştırmak için yerleşik bir işlevi ve değerleri karşılaştırmak için bir kullanıcı tanımlı işlemi kullanır).
array_uintersect_uassoc() Dizileri karşılaştırır ve eşleşenleri döndürür (anahtarları ve değerleri karşılaştırmak için iki kullanıcı tanımlı anahtar karşılaştırma işlemini kullanır).
array_unique() Bir diziden yinelenen değerleri kaldırır.
array_unshift() Bir dizinin başına bir veya daha fazla öğe ekler.
array_values() Bir dizinin tüm değerlerini döndürür.
array_walk() Bir dizinin her üyesine bir kullanıcı tanımlı işlemi uygular.
array_walk_recursive() Bir dizinin her üyesine rekürsif olarak bir kullanıcı tanımlı işlemi uygular.
arsort() Değere göre bir ilişkisel diziyi azalan sırada sıralar.
asort() Değere göre bir ilişkisel diziyi artan sırada sıralar.
compact() Değişkenleri ve değerlerini içeren bir dizi oluşturur.
count() Bir dizideki öğelerin sayısını döndürür.
current() Bir dizideki mevcut öğeyi döndürür.
each() PHP 7.2'den itibaren kullanımdan kaldırıldı. Bir diziden mevcut anahtarı ve değeri döndürür.
end() Bir dizinin dahili işaretçisini son öğeye ayarlar.
extract() Bir diziden değişkenleri mevcut sembol tablosuna içe aktarır.
in_array() Belirtilen bir değerin bir dizide var olup olmadığını kontrol eder.
key() Bir diziden bir anahtar alır.
krsort() Anahtara göre bir ilişkisel diziyi azalan sırada sıralar.
ksort() Anahtara göre bir ilişkisel diziyi artan sırada sıralar.
list() Değişkenleri bir dizi gibi atar.
natcasesort() Bir diziyi harf büyüklüğüne duyarlı "doğal sıra" algoritması kullanarak sıralar.
natsort() Bir diziyi "doğal sıra" algoritması kullanarak sıralar.
next() Bir dizinin dahili dizin işaretçisini ilerletir.
pos() current() işleminin takma adıdır.
prev() Bir dizinin dahili dizin işaretçisini geri sarar.
range() Bir dizi içeren bir eleman aralığı oluşturur.
reset() Bir dizinin dahili işaretçisini ilk öğeye ayarlar.
rsort() Bir diziyi azalan sırada sıralar.
shuffle() Bir diziyi karıştırır.
sizeof() count() işleminin takma adıdır.
sort() Bir diziyi artan sırada sıralar.
uasort() Bir diziyi kullanıcı tanımlı bir karşılaştırma işlevini kullanarak değerlere göre sıralar ve anahtar ilişkisini korur.
uksort() Bir diziyi kullanıcı tanımlı bir karşılaştırma işlevini kullanarak anahtarlara göre sıralar.
usort() Bir diziyi kullanıcı tanımlı bir karşılaştırma işlevini kullanarak değerlere göre sıralar.

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow