PHP - İki Boyutlu Dizi [Matris]

LosT

Yaşayan Forum Efsanesi
5 Şub 2015
8,117
31
-


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.

4dKDtQ.png


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.

4dKDtQ.png


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]

4dKDtQ.png


Çı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:

n2uzRP.png


4dKDtQ.png





CckryH.gif






İçerik: phpde 2 boyutlu dizi, sessiona dizi tanımlamak, diziye eleman eklemek.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.