">

Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Dizi (array) değişkenleri

Benzer bir sunumlar


... konulu sunumlar: "Dizi (array) değişkenleri"— Sunum transkripti:

1 Dizi (array) değişkenleri

2 Dizi değişkenleri Dizi değişkenleri oluşturulan bir değişkene sınırsız sayıda veri tanımlamaya yarayan bir değişken sistemidir. PHP de dizi değişkeni yaratmak: <?php $dizi=array(); $dizi[0]=5; $dizi[1]=6; $dizi[2]=7; $dizi[3]="napan"; // aşağıdaki şekildede yaratılabilir $aynidizi=array(5,6,7,"napan"); ?>

3 Dizi değişkeni Çıktısı =>
Array ( [0] =>5 [1] =>6 [2] =>7 [3] =>napan ) <?php $dizi=array(); $dizi[0]=5; $dizi[1]=6; $dizi[2]=7; $dizi[3]="napan"; $aynidizi=array(5,6,7,"napan"); echo "<pre>"; /* burada formatlı çıktı yaratmak için kullanılır.*/ print_r($dizi); /* print_r dizi değişkenleri tüm elemanlarıyla yazdırır.*/ print_r($aynidizi); echo "</pre>"; ?> Çıktısı =>

4 Anahtarı bilmeden dizi değişkene değer atama
Eğer sayısal bir anahtar kullanıyor ve en son hangi anahtarda kaldığımız hatırlamıyorsak boş köşeli parantez bir sonraki sayısal boş anahtarı kullanacaktır. <?php $dizi=array(); $dizi[0]=5; $dizi[1]=6; $dizi[]=7; $dizi[]=8; ?> Yukarıdaki örnekte anahtar 7 değeri için 2 ve 8 değeri için 3 otomatik olarak atanacaktır.

5 Dizi değişkeni <?php $aynidizi=array(5,6,7,"napan"); ?>
Yukarıda yapılan tanımlamada dizi değişken anahtarı (index) sifirdan başlar. $dizi=array(); $dizi[5]=2; $dizi["isim"]="Emre"; $dizi[102]="X"; Yukarıdaki örnekte anahtarları biz belirledik. Dizi içerisinde 3 adet eleman vardır, anahtarları bizim tarafımızdan belirlenmiştir. PHP dilinde anahtarların alışılan diğer dillerdeki gibi sıralı ya da sayısal olması gerekmez. Sadece ondalık sayılar(örnek: 9.5) anahtar(index) olarak kullanılamaz.

6 Dizi değişkeni <?php $müsteriler=array();
$müsteriler["adi"]="Emre"; $müsteriler["soyadi"]="Ozen"; ?> Yukarıdaki örnek hatasız bir örnektir.

7 Anahtarı bilmeden dizi değişkene değer atama
Eğer sayısal bir anahtar kullanıyor ve en son hangi anahtarda kaldığımız hatırlamıyorsak boş köşeli parantez bir sonraki sayısal boş anahtarı kullanacaktır. <?php $dizi=array(); $dizi["adi"]="Emre"; $dizi["soyadi"]="Ozen"; $dizi[]=55; $dizi["eposta"]="Ozen"; ?> Yukarıdaki örnekte anahtar 55 değeri için 0 olarak, otomatik olarak atanacaktır. array_push($dizi,55); de aynı işlemi yapan öntanımlı bir fonksiyondur.

8 Dizi değişkenini anahtarını belirterek atama
<?php $dizi=array(0=>55,1=>"Emre","X"=>56); echo "<pre>"; print_r($dizi); ?> Yukarıdaki script'in çıktısı: Array ( [0]=>55 [1]=>Emre [X]=>56 )

9 Çok boyutlu dizi değişkenleri
Çok boyutlu dizi değişkeni, bir anahtar içerisinde değer yerine yeni bir dizi tanımlanması ile oluşur. Örneğin: <?php $ikiboyut=array(); $ikiboyut[1]=array(); $ikiboyut[1][0]=3; $ikiboyut[1][1]=8; $ikiboyut[1][2]=77; $ikibouyut[2]=array(); $ikiboyut[2][0]=55; $ikiboyut[2][1]="Emre"; $ikiboyut[2][5]=8; ?> PHP de ikinci boyutlardaki eleman sayılarınınveya anahtarlarının eşit olması zorunluluğu yoktur.

10 Çok boyutlu dizi değişkenleri
Önceki slayttaki örneğin bir diğer yazılışı: <?php $ikiboyut=array(1=>array(3,8,77),2=>array(0=>55,1=>"Emre",5=>8)); echo "<pre>"; print_r($ikiboyut); echo "</pre>"; ?> print_r fonksiyonu boyut ne olursa olsun sonucu döndürür. Yukarıdaki script'in çıktısı: Array( [1]=>Array( [0]=>3 [1]=>8 [2]=>77 ) [2]=>Array( [0]=>55 [1]=>Emre [5]=>8 Çok boyutlu dizi değişkenleri

11 Dizi değişkenlerini listeleme
Eğer dizi değişkeninin anahtarları sıralı sayı ise: Count() ön tanımlı fonksiyon ile değer sayısı alınır ve döngü içerisinde dizi değişken elemanlarına tek tek ulaşılabilir. Örneğin: <?php $d=array(); $d[0]="a"; $d[1]="b"; $d[2]="c"; $d[3]="d"; $sayi=count($d); for($i=0;$i<$sayi;$i++) echo "\$d[$i] -> {$d[$i]} <br/>"; ?> Çıktısı: $d[0]->a $d[1]->b $d[2]->c $d[3]->d

12 Dizi değişkenlerini listeleme
Eğer dizi değişkeninin anahtarları bilinmiyor ise: Count() değer sayısını döndürür fakat bu sayı anahtar (index) olarak kullanılamaz. Bu tip durumlarda foreach döngüsü kullanılır. Bu döngü her dizi elemanı için otomatik olarak bir kere çalışır. Örneğin: <?php $d=array("a","b","c","d"); // her eleman için sadece değeri döner foreach($d as $deger) echo $deger.","; ?> Çıktısı: a,b,c,d, $d=array("a","b","c","d"); foreach($d as $anahtar=>$deger) // her eleman için anahtar ve değeri döner echo $anahtar." - ".$deger.","; ?> 0-a,1-b,2-c,3-d,

13 Dizilerde Sıralama PHP, dizileri sıralamak için kullanılabilen çeşitli işlevlere sahiptir ve bu belgede bunların kullanımları ele alınmıştır. Bu işlevler arasındaki başlıca farklar şunlardır: Bazı sıralama işlemleri dizilerin anahtarlarına göre yapılırken bazılarında değerlere göre yapılır: $dizi['anahtar'] = 'değer'; Anahtarların sayısal olarak ele alındığı durumda sıralama sonrası anahtarlarla değerleri arasındaki ilişki bozulmuş olabilir de olmayabilir de. Sıralama çeşitleri: abecesel, küçükten büyüğe (artan), büyükten küçüğe (azalan), sayısal, doğal, rasgele, kullanıcı tanımlı

14 Dizilerde Sıralama komutları

15 Sort ve Natsort arasındaki fark
<?php $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); sort($array1); echo "Standart sıralama\n"; print_r($array1); natsort($array2); echo "\nDoğal sıralama\n"; print_r($array2); ?> Standart sıralama Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png ) Doğal sıralama [3] => img1.png [2] => img2.png [0] => img12.png

16 arsort ve asort <?php
$array= array("z"=>"Melek", "k"=>"Hasan", "a"=>"Tezel", "c"=>"Emre"); arsort($array); echo "AR sort<br/>"; print_r($array); asort($array); echo "A sort<br/>"; print_r($array); ?> AR Sort Array ( [a] => Tezel [z] => Melek [k] => Hasan [c] => Emre ) A Sort

17 krsort ve ksort <?php
$array= array("z"=>"Melek", "k"=>"Hasan", "a"=>"Tezel", "c"=>"Emre"); krsort($array); echo "AR sort<br/>"; print_r($array); ksort($array); echo "A sort<br/>"; print_r($array); ?> KR Sort Array ( [z] => Melek [k] => Hasan [c] => Emre [a] => Tezel ) k Sort

18 rsort ve sort <?php $array= array("Melek", "Hasan", "Tezel","Emre"); rsort($array); echo "R sort<br/>"; print_r($array); sort($array); echo "Sort<br/>"; print_r($array); ?> Bu örneğin çıktısındaki anahtarlara Dikkat edelim R Sort Array ( [0] => Tezel [1] => Melek [2] => Hasan [3] => Emre ) Sort [0] => Emre [1] => Hasan [2] => Melek [3] => Tezel

19 Çıktı: Array ( [a] => 4 [b] => 8 [c] => -1 [d] => -9 [e] => 2 [f] => 5 [g] => 3 [h] => -4 ) [b] => 8 ) <?php // Karşılaştırma işlevi function karş($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } // Sıralanacak dizi $dizi = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4); print_r($dizi); // Sıralayıp sonucu basalım uasort($dizi, 'karş'); print_r($dizi); ?> uasort

20 Dizi değişken içerisindeki aynı verileri listelemek.
Bu iş için kullanabileceğimiz ön tanımlı fonksiyon: array_intersect dir. Bu fonksiyon değişik sayıda arrayi parametre olarak kabul edebilir. Kullanılışı: <?php $dizi1=array(2,4,6,8,7,10); $dizi2=array(11,2,9,7); $dizi3=array(9,2,7); $sonuc=array_intersect($dizi1,$dizi2,$dizi3); print_r($sonuc); ?> Çıktısı Array ( [0]=>2 [4]=>7 )

21 Dizi değişken içerisindeki farklı verileri listelemek.
Bu iş için kullanabileceğimiz ön tanımlı fonksiyon: array_diff dir. Bu fonksiyon değişik sayıda arrayi parametre olarak kabul edebilir. Kullanılışı: <?php $dizi1=array("a"=>"green","red","blue","red"); $dizi2=array("b"=>"green","yellow","red"); $result=array_diff($dizi1,$dizi2); print_r($result);?> Çıktısı: Array ( [1] => blue )

22 Dizi değişken içerisinde arama yapmak
Bu amaçla kullanabileceğimiz iki fonksiyon vardır. in_array : varsa doğru yoksa yanlış döndürür. array_search : varsa ilkinin anahtarını yoksa yanlış(false) döndürür. <?php $arr=array(3,45,6,89,9); if (in_array(89,$arr)) echo 'dizi değişken içerisinde 89 mevcut.'; ?> $arr=array(1=>'Mağusa',2=>'Lefkoşa',3=>'Girne',4=>'Lefkoşa'); echo array_search('Lefkoşa',$arr); // sonuç 2 dir.

23 Form İşlemleri

24 Formlar Formlar, web sayfamıza gelen kullanıcılardan bilgi almamıza yarayan nesnelerdir. HTML ile oluşturulurlar, işlenmek üzere PHP sayfalarına gönderilirler. Formlardan gelen veriyi iki değişik yöntemle işleyebiliriz. GET ve POST Formları kodlamak için HTML kullanırız.

25 GET Metodu Internet sayfalarında adres satırından bilgi almak için kullanılan bir yöntemdir. Örneğin: index.php?cins=haberler&no=1 ? : değişken kısmının başladığını belirtir. &: değişkenleri birbirinden ayırmaya yarar. = : değişkene değerini atamak için kullanılır. Get metodu adres satırını kullanır. Aktarabileceği veri 4000 byte ile sınırlıdır. Buda dosyaları karşıdan yüklemek (upload) için uygun değildir. Adres satırı kullanıldığı için kullanıcı adı veya şifre gibi hassas verilerin transferi için kullanılmaz(POST metodu kullanılır). (IE adres satırındaki geçmişini hatırlar.)

26 GET Metodu Örneğin: index.php?cins=haberler&no=1
ile çağrılan sayfanın bu iki değişkenin değerlerini alabilmesi şu şekilde olur: <?php echo 'Aranan cins='.$_GET['cins'].'<br/>'; $no=$_GET['no']; echo 'Haberin numarası $no dir.'; ?>

27 GET Metodu <?php if (isset($_GET['adi']) && ($_GET['adi']!='')) {
echo "Merhaba <b>{$_GET['adi']} {$_GET['soyadi']}</b>"; } else ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET"> Adınız: <input type="text" name="adi"/> <br/> Soyadınız: <input type="text" name="soyadi"/> <br/> <input type="submit" value="Gönder"/> </form> Burada formun metodu GET ve alış yöntemi $_GET[] dir. Form elemanları <form> takısı içerisinde bulunur. Bir sayfada birden fazla <form> takısı bulunabilir. Formun adının z.php olduğunu ve girilen değerlerin Emre Ozen olduğunu varsayarsak. Adres çubuğundaki satır: z.php?adi=Emre&soyadi=Ozen olarak görünür.

28 POST Metodu Post metodunda veriler adres satırı ile değil http headers aracılığı ile gönderilir. Dosya aktarmaya (upload) uygun bir yöntemdir. Veri boyutu sınırı sunucu tarafında php.ini dosyası aracılığı ile kontrol edilir. Hassas verilerimiz için de GET metoduna nazaran daha güvenli ve uygundur.

29 POST Metodu <?php if (!isset($_POST['kadi']) || ($_POST['kadi']=='')) // post değeri olup olmadığına bakılır { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> Kullanıcı adı: <input type="text" name="kadi"/> <br/> Şifre: <input type="text" name="sifre"/> <br/> <input type="submit" value="Giriş Yap"/> </form> } else { $kullanici='Emre'; $sifre='123456'; if ($_POST['kadi']==$kullanici && $_POST['sifre']==$sifre) echo 'Giriş başarılı'; else echo 'Kullanıcı adı veya şifreniz hatalı'; }?>

30 REQUEST komutu Önceki örneklerimizde $_GET['....'] ve $_POST['...'] komutları yerine (her iki metod için de) $_REQUEST[...] kullanılabilir. Bütün form elemanlarını ziyaret etmek için foreach döngüsünden de yararlanılablir. Örneğin bir önceki POST metodu örneğimizde verilerin çıktısı gezginimizde görebilmek için aşağıdaki döngü kullanılabilir: foreach ($_POST as $anahtar=>$veri) echo "$anahtar - $veri <br/>";


"Dizi (array) değişkenleri" indir ppt

Benzer bir sunumlar


Google Reklamları