PHP İki Boyutlu Dizi
Dizide bazen o indis değerinin farklı özelliklerini de kaydetmemiz gerekebiliyor. Bu tip durumlarda 2 boyutlu dizi kullanırız. Örneğin; sepet uygulamasında ürün ID'li indis değerine ürünün ismi, fiyatı, adeti gibi eklememiz gereken dizi elemanları olabilir. Bir önceki yazımda sepet mantığına az çok değinmiştik. Şimdi ise bu örnekten ilerleyerek anlatım yapacağım.
2 Boyutlu Dizi Tanımlamak
Tek boyutlu bir diziyi şu şekil tanımlıyorduk;
Kod:
[COLOR="Silver"][FONT="Lucida Console"][COLOR="Sienna"]$dizi_adi[/COLOR] = [COLOR="MediumTurquoise"]array[/COLOR]([COLOR="Lime"]"eleman1"[/COLOR],[COLOR="lime"]"eleman2"[/COLOR],[COLOR="lime"]"eleman3"[/COLOR]);[/FONT][/COLOR]
İki boyutlu dizilerde ise şu şekil bir tanımlama yapıyoruz;
Kod:
[COLOR="silver"][FONT="Lucida Console"]
[COLOR="Sienna"]<?php[/COLOR]
[COLOR="#ff5555"]$dizi[/COLOR] = [COLOR="mediumturquoise"]array[/COLOR](
[COLOR="MediumTurquoise"]array[/COLOR]([COLOR="darkorange"]1[/COLOR],[COLOR="darkorange"]2[/COLOR],[COLOR="darkorange"]3[/COLOR],[COLOR="darkorange"]4[/COLOR]),
[COLOR="mediumturquoise"]array[/COLOR]([COLOR="darkorange"]2[/COLOR],[COLOR="darkorange"]3[/COLOR],[COLOR="darkorange"]4[/COLOR],[COLOR="darkorange"]5[/COLOR]),
[COLOR="mediumturquoise"]array[/COLOR]([COLOR="darkorange"]5[/COLOR],[COLOR="darkorange"]6[/COLOR],[COLOR="darkorange"]7[/COLOR],[COLOR="darkorange"]8[/COLOR]),
[COLOR="mediumturquoise"]array[/COLOR]([COLOR="darkorange"]9[/COLOR],[COLOR="darkorange"]10[/COLOR],[COLOR="darkorange"]11[/COLOR],[COLOR="darkorange"]12[/COLOR]),
);
echo [COLOR="#ff5555"]$dizi[/COLOR][[COLOR="DarkOrange"]1[/COLOR]][[COLOR="darkorange"]2[/COLOR]];
[COLOR="sienna"]?>[/COLOR]
[/FONT][/COLOR]
Çıktısı 2. satır 3. sütun yani 4 olacaktır.
Bununla ilgili bir sepet uygulaması yapalım.
Öncelikle bir session oluşturalım ve bunu dizi olarak tanımlayalım.
Kod:
[COLOR="Silver"][FONT="Lucida Console"]
[COLOR="Sienna"]<?php[/COLOR]
[COLOR="MediumTurquoise"]session_start[/COLOR]();
[COLOR="#ff5555"]$_SESSION[/COLOR][[COLOR="Lime"]"sepet"[/COLOR]] = [COLOR="mediumturquoise"]array[/COLOR]();
[COLOR="sienna"]?>[/COLOR]
[/FONT][/COLOR]
Şimdi diziye ürün ID üzerinden indis oluşturup 3 elemanlı bir dizisi varmış gibi veri ekleyelim. Bu diziyi tekrardan tanımlamamıza gerek yok. Daha sonra print_r ile çıktısını alıp görelim. Ben değişkenlere kendim atama yaparak kontrol ettim.
Kod:
[FONT="Lucida Console"]
[COLOR="#ff5555"]$_SESSION[/COLOR][[COLOR="lime"]"sepet"[/COLOR]][[COLOR="#ff5555"]$urun_id[/COLOR]][[COLOR="DarkOrange"]0[/COLOR]] = [COLOR="#ff5555"]$urun_isim[/COLOR];
[COLOR="#ff5555"]$_SESSION[/COLOR][[COLOR="Lime"]"sepet"[/COLOR]][[COLOR="#ff5555"]$urun_id[/COLOR]][[COLOR="darkorange"]1[/COLOR]] = [COLOR="#ff5555"]$urun_fiyat[/COLOR];
[COLOR="#ff5555"]$_SESSION[/COLOR][[COLOR="lime"]"sepet"[/COLOR]][[COLOR="#ff5555"]$urun_id[/COLOR]][[COLOR="darkorange"]2[/COLOR]] = [COLOR="#ff5555"]$urun_adet[/COLOR];
[COLOR="MediumTurquoise"]print_r[/COLOR]([COLOR="#ff5555"]$_SESSION[/COLOR][[COLOR="Lime"]"sepet"[/COLOR]]);
[/FONT]
Çıktı almak için:
Kod:
[FONT="Lucida Console"][COLOR="Silver"]
[COLOR="MediumTurquoise"]echo [/COLOR][COLOR="lime"]"<pre>"[/COLOR];
[COLOR="mediumturquoise"]print_r[/COLOR]([COLOR="#ff5555"]$_SESSION[/COLOR][[COLOR="Lime"]"sepet"[/COLOR]]);
[COLOR="mediumturquoise"]echo [/COLOR][COLOR="lime"]"</pre>"[/COLOR];
[/COLOR][/FONT]
Çıktı şu şekil olacaktır:
İçerik: phpde 2 boyutlu dizi, sessiona dizi tanımlamak, diziye eleman eklemek.