PHP

PHP’de Dizi (array) Kullanımı

PHP'de Dizi (array) Kullanımı

Modern web uygulamaları geliştirirken kullanıcı listeleri, form girdileri, ürün katalogları veya veritabanı kayıtları gibi birden fazla veriyi tek bir yapı altında toplamak gerekir. PHP programlama dilinde bu tür çoklu veri gruplarını bellekte organize etmek için diziler (arrays) kullanılır. Bu rehberde, PHP dizi yapısını sıfırdan ele alacak; dizi türlerini, bu yapılar üzerinde işlem yapmayı ve sık kullanılan fonksiyonları inceleyeceğiz.

Dizi (Array) Nedir ve Neden Kullanılır?

Dizi, tek bir değişken adı altında birden fazla değeri saklamaya yarayan özel bir veri yapısıdır. Normal bir değişkende yalnızca tek bir veri (örneğin bir metin veya sayı) tutulabilirken, diziler farklı veri türlerinden yüzlerce veya binlerce elemanı aynı anda barındırabilir.

Diziler, verileri düzenli tutmayı ve bu veriler üzerinde toplu işlemler (sıralama, filtreleme, arama) yapmayı kolaylaştırır. PHP’de bir dizi içinde string, integer, float, boolean ve hatta başka diziler bir arada bulunabilir. PHP bu konuda dinamik ve esnek bir yapı sunar.

PHP’de Dizi Tanımlama Yöntemleri

PHP’de dizi oluşturmak için iki temel sözdizimi kullanılır. İlki klasik array() fonksiyonu, ikincisi ise PHP 5.4 ile hayatımıza giren ve modern kod tabanlarında yaygın olarak tercih edilen köşeli parantez [] sözdizimidir.

$diller_eski = array("PHP", "Python", "JavaScript");
$diller_yeni = ["PHP", "Python", "JavaScript"];

Yukarıdaki örnekte her iki değişken de aynı veri kümesini taşır. Modern PHP standartlarında köşeli parantez kullanımı daha temiz ve okunabilir kabul edilir.

PHP Dizi Türleri

PHP’de diziler yapısal özelliklerine ve verileri tutma biçimlerine göre üç ana gruba ayrılır.

1. İndeksli Diziler (Indexed Arrays)

İndeksli dizilerde her elemana sayısal bir indeks (sıra numarası) atanır. PHP’de varsayılan olarak indeksler sıfırdan (0) başlar.

$sunucular = ["Web", "Veritabani", "DNS"];

echo $sunucular[0];
echo $sunucular[2];

Bu örnekte $sunucular[0] ifadesi listenin ilk elemanı olan “Web” değerini, $sunucular[2] ifadesi ise üçüncü sıradaki “DNS” değerini ekrana yazdırır.

Mevcut bir indeksli diziye yeni bir eleman eklemek için şu yöntem kullanılır:

$sunucular[] = "Mail";

Bu komut, “Mail” değerini dizinin en sonuna otomatik olarak yeni bir indeksle ekler.

2. İlişkisel Diziler (Associative Arrays)

İlişkisel diziler, sayısal indeksler yerine adlandırılmış anahtarlar (keys) kullanan anahtar-değer (key-value) çiftleridir. Verilerin ne anlama geldiğini netleştirmek istediğimizde ilişkisel diziler kullanılır.

$kullanici = [
    "ad" => "Yunus",
    "rol" => "Guvenlik Uzmani",
    "deneyim_yili" => 5,
    "aktif" => true
];

echo $kullanici["ad"];
echo $kullanici["rol"];

Burada her bir değere kendine ait anlamlı bir metin anahtarı atanmıştır. $kullanici["ad"] çağrıldığında doğrudan “Yunus” sonucuna ulaşılır.

3. Çok Boyutlu Diziler (Multidimensional Arrays)

Bir dizinin içinde başka bir dizi veya diziler bulunuyorsa bu yapıya çok boyutlu dizi denir. Matris yapılarını, ilişkili veritabanı sonuçlarını veya karmaşık veri ağaçlarını saklamak için idealdir.

$kullanicilar = [
    [
        "ad" => "Ahmet",
        "eposta" => "ahmet@ornek.com"
    ],
    [
        "ad" => "Mehmet",
        "eposta" => "mehmet@ornek.com"
    ]
];

echo $kullanicilar[0]["ad"];
echo $kullanicilar[1]["eposta"];

İlk satır birinci alt dizinin “ad” bilgisini, ikinci satır ise ikinci alt dizinin “eposta” bilgisini verir.

PHP Dizi Elemanlarını Döngüyle İşleme

Dizilerdeki verileri listelemek veya her eleman üzerinde tek tek işlem yapmak için en yaygın kullanılan yapı foreach döngüsüdür.

İndeksli bir diziyi dönmek için şu yapı kullanılır:

$portlar = [22, 80, 443, 8080];

foreach ($portlar as $port) {
    echo "Port: " . $port . "n";
}

İlişkisel bir dizide hem anahtara hem de değere erişmek istiyorsak şu sözdiziminden yararlanırız:

$sistem_bilgisi = [
    "OS" => "Linux",
    "Kernel" => "5.15",
    "Uptime" => "12 gun"
];

foreach ($sistem_bilgisi as $anahtar => $deger) {
    echo $anahtar . ": " . $deger . "n";
}

Bu döngü, dizideki tüm satırları sırayla gezer ve her anahtar-değer ikilisini ayrıştırarak çıktı verir.

Sık Kullanılan PHP Dizi Fonksiyonları

PHP, dizileri yönetmek ve manipüle etmek için yerleşik yüzlerce fonksiyona sahiptir. Günlük geliştirmelerde en sık ihtiyaç duyulan temel fonksiyonlar şunlardır:

Eleman Sayısını Bulma: count()

Bir dizinin içinde kaç adet eleman bulunduğunu döndürür.

$loglar = ["Hata 1", "Hata 2", "Uyari 1"];
$toplam = count($loglar);
echo $toplam;

Eleman Ekleme ve Çıkarma: array_push() ve array_pop()

Dizinin sonuna bir veya daha fazla eleman eklemek ya da sonundaki elemanı diziden çıkarmak için kullanılır.

$sayilar = [10, 20, 30];

array_push($sayilar, 40);
$son_eleman = array_pop($sayilar);

array_push() diziye 40 değerini ekler, ardından gelen array_pop() ise dizinin sonundaki 40 değerini diziden çıkarıp değişkene atar.

Eleman Arama: in_array()

Belirli bir değerin dizi içerisinde var olup olmadığını kontrol eder. Sonuç olarak mantıksal (boolean) true veya false döner.

$izin_verilenler = ["admin", "editor", "moderator"];

if (in_array("admin", $izin_verilenler)) {
    echo "Erisim onaylandi.";
}

Dizileri Birleştirme: array_merge()

İki veya daha fazla diziyi tek bir dizi haline getirir.

$grup_a = ["A1", "A2"];
$grup_b = ["B1", "B2"];

$tum_gruplar = array_merge($grup_a, $grup_b);

Anahtar ve Değerleri Ayrıştırma: array_keys() ve array_values()

İlişkisel dizilerdeki anahtarları veya değerleri bağımsız bir indeksli dizi olarak almak için kullanılır.

$ayarlar = ["tema" => "koyu", "dil" => "tr"];

$anahtarlar = array_keys($ayarlar);
$degerler = array_values($ayarlar);

Dizilerde Güvenlik ve Temiz Kod Önerileri

Dizilerle çalışırken karşılaşılan en yaygın hata, dizide tanımlı olmayan bir anahtara erişmeye çalışmaktır (Undefined array key uyarısı). Bu tür hataların önüne geçmek için şu kurallara dikkat edilmelidir:

  • Bir anahtara erişmeden önce isset() veya array_key_exists() fonksiyonlarıyla anahtarın varlığı denetlenmelidir.
  • PHP 7.0 ile gelen null birleşim işleci (??) kullanılarak varsayılan değerler atanmalıdır. Örneğin: $kullanici_adi = $kullanici['ad'] ?? 'Misafir';
  • Dış kaynaktan (GET, POST parametreleri gibi) gelen diziler doğrudan işlenmemeli, veri türleri ve içerikleri doğrulanmalıdır.

Özet ve Sonraki Adımlar

PHP’de diziler, karmaşık veri yığınlarını yönetilebilir ve anlamlı hale getiren en temel veri tiplerindendir. İndeksli diziler sıralı veriler için, ilişkisel diziler kimliklendirilmiş veriler için, çok boyutlu diziler ise hiyerarşik yapılar için idealdir.

Bir sonraki adım olarak array_map(), array_filter() ve array_reduce() gibi fonksiyonel programlama odaklı gelişmiş PHP dizi fonksiyonlarını inceleyebilir ve veri manipülasyon becerilerinizi ilerletebilirsiniz.

#php#php dizi#programlama#web gelistirme#yazılım

Комментарии

Комментариев пока нет. Будьте первым.

Оставить комментарий

Комментарии публикуются после одобрения администратором.