![]() |
#1 |
![]() PHP Programlama Dilinde Diziler (Array) // Yeni başlayanlar - Orta düzey
Diziler derken TV dizileri diye anlayanlarınız varsa hemen terk edin ![]() Kod: $isimler[1] = "Ali";$isimler[2] = "Veli";$isimler[3] = "Deli";echo $isimler[2]; Yukarıdaki kodu çalıştırdığımızda "Veli" çıktısını alırız. Bu dizi değişkenlerini her alanda kullanabileceğinizden ötürü bilmenizde fayda var. Daha gelişmiş bir örnek için aşağıdaki kodu inceleyin; Kod: $isimler["kiz"][1] = "Selen";$isimler["kiz"][2] = "Melis";$isimler["kiz"][3] = "Elmas";$isimler["erkek"][1] = "Birhan";$isimler["erkek"][2] = "Kerem";$isimler["erkek"][3] = "Yunus";$isimler["erkek"][4] = "Emre";echo $isimler["kiz"][3]; Bu kodu çalıştırdığımızda alacağımız çıktı "Elmas" olacaktır. Sanırım bunun sebebini zaten hemen anladınız ![]() Kod: $isimler = array( 1 => "Birhan", 2 => "Kerem", 3 => "Yunus", 4 => "Emre",);echo $isimler[3]; Artık tahmin edeceğiniz gibi çıktı olarak "Yunus" değerini verecektir. Merak etmeyin uyuzluk olsun diye değil, array kullanımını göstermek için verdim bu örneği ![]() Kod: $isimler = array( "kiz" => array( 1 => "Selen", 2 => "Melis", 3 => "Elmas" ), "erkek" => array( 1 => "Birhan", 2 => "Kerem", 3 => "Yunus" ));echo $isimler["kiz"][3]; Yukarıdaki kod karmaşık gelmiş olabilir. Hak veriyorum ![]() Dizi yapısını kısmen öğrendik fakat ne işimize yarayacak? Kafanıza takılmıştır elbette. Hemen bir örnekle de ne işe yarayacağını görelim; Kod: $gunler = array("Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi");echo $gunler[date("w")]; Öncelikle bu kodda size yabancı gelebilecek ibareleri açıklayayım. Görüldüğü gibi date(); fonksiyonunu kullandık. Bu fonksiyon PHP için tarih işlemlerinde kullanılır. İleri de tarih işlemlerini ayrı bir notta ele alacağız. Şimdilik sadece date("w") fonksiyonunun bize o günün hafta içindeki sıra sayısını verdiğini bilmemiz yeterli. "w" ibaresi ile gün sırasını alırız ve bu değer sıfırdan başlar. Bu yüzden karışıklık olmasın diye array dizisinde ilk sıraya "Pazar" değerini girdik. Oysa ki hafta pazartesi ile başlamalıydı. Amacımız sadece karışıklıklığı önlemek oldu. Ayrıca hemen dipnot düşelim ki array dizisinin bu tür kullanımında her içeriğe bir sayı değeri atanır ve bu sayı sıfır sayısından başlar. Yani yukarıdaki $gunler değişkenine tanımladığımız array dizisi için "Pazar" => 0 değerine eşittir. "Pazartesi" => 1 değerine eşittir. Gerisini zaten anlamış olmalısınız ![]() Yukarıdaki örnekte görüldüğü gibi PHP ile ancak ingilizcesini alabileceğimiz gün isimlerini Türkçe`ye çevirdik. Artık sitemizde Türkçe olarak "Pazartesi" yazabileceğiz mesela ![]() Kullanım alanı elbette bununla sınırlı değil, aklınıza bile gelmeyecek yerlerde bu dizi yapısını kullanacaksınız. Ama ben sadece yüzeysel olarak bu kadar açıklayabiliyorum. Array ile kullanacağımız bir takım sıralama fonksiyonları da vardır. Sıralamalarda Türkçe karakterle başlayan kelimeler tanınmadığı için son kısımda yer alır. bu fonksiyonlar şunlardır; sort(); - Dizi içeriğini alfabetik sıralama. rsort(); - Dizi içeriğini ters alfabetik sıralama. asort(); - Dizi elemanlarını değerine göre sıralar. arsort(); - Dizi elemanlarını değerine göre tersten sıralar. ksort(); - Dizi elemanlarını içeriğe göre sıralar. krsort(); - Dizi elemanlarını içeriğe göre tersten sıralar. Hemen örneklerle bu fonksiyonları açıklayalım. Örnek - sort(); Kod: $seviyeler = array( "Admin" => "100", "Yönetici" => "10", "Üye" => "1");sort($seviyeler);foreach($seviyeler as $x => $y) { echo("$x - $y<br>");} Yukarıdaki kodda foreach döngüsünü kullandık. Kodu çalıştırdığımızda $seviyeler değişkenindeki içeriğin alfabetik bir şekilde sıralandığını görürüz. Eğer kullandığımız sort($seviyeler); yapısını rsort($seviyeler); yaparsak göreceğiz ki sıralama tersine dönecektir. Örnek - asort(); Kod: $seviyeler = array( "Admin" => "100", "Yönetici" => "10", "Üye" => "1");asort($seviyeler);foreach($seviyeler as $x => $y) { echo("$x - $y<br>");} Bu kodu çalıştırdığımızda sonuç aşikardır. "Üye" başta olmak üzere sıralama yapılır. Çünkü "Üye" en düşük değere sahiptir. Değeri 1`dir. Eğer buradaki fonksiyonu arsort($seviyeler); yaparsak sıralamanın tam tersine döneceğini de görmüş oluruz. Örnek - ksort(); Bu örnek için kod yazma ihtiyacı duymuyorum. Tek yapmanız gereken yukarıdaki örnekteki fonksiyonu ksort($seviyeler); veya tersi için krsort($seviyeler); olarak değiştirmek. Sonuçta göreceksiniz ki bu seferde sıralama, dizi elemanlarının alfabetik sıralaması şeklindedir. ksort(); kullanılırsa "Admin" başta, krsort(); kullanılırsa sonda yer alacaktır. Oldu ki biz dizimizin içinden rastgele bir değer alıp bunu ekrana basmak istiyoruz. Bu durumda yardımımıza hemen suffle(); koşuyor ![]() Kod: $seviyeler = array( "Admin" => "100", "Yönetici" => "10", "Üye" => "1");shuffle($seviyeler);for ($x=0; $x<1; $x++) { echo("$seviyeler[$x]<br>");} Bu kodu çalıştırdığımızda ekrana her seferinde başka bir değer gelecektir. Peki biz dizimizdeki elemanların toplam değerini bulmak için ne yapacağız? Burada da devreye array_sum(); fonksiyonu giriyor. Örnek - array_sum(); Kod: $sayilar = array(1,2,3,4,5,6,7,8);echo array_sum($sayilar); Bu kodun çıktısı 36 olacaktır. Çünkü 1+2+3+4+5+6+7+8=36 eder. Bu fonksiyonda çeşitli alanlarda işinize elbet yarayacaktır. Bizim iki adet dizimiz olsun ve bunları birleştirmek istiyor olalım. Ne yapmamız gerek? array_merge(); fonksiyonu bu iş için uygundur. Sadece iki diziyi değil, n sayıdaki diziyi bununla birleştirebilirsiniz. Hemen örneğimizi de verelim; Örnek - array_merge(); Kod: $x = array(1,2,3,4,5,6,7,8);$y = array(4,7,8,3);$birlestir = array_merge($x, $y); print_r($birlestir); Örneğin en sonunda görüldüğü gibi ekrana yeni dizimizi bastırıyoruz. Eğer print_r yerine print kullansaydık ekranda sadece "Array" yazısını görecektik. Böylece print ve print_r arasındaki farkı da görmüş olduk ![]() Dizilerimizde bazen bir değeri birden çok kullanabiliriz. Eğer ki hangi değerin kaç kez kullanıldığını öğrenmek istersek hemen yardımımıza array_count_values(); koşuyor. Aşağıda ki örneği inceleyin. Örnek - array_count_values(); Kod: $x = array(a,b,t,a,y,k,d,w,y,a,g,v,b,e,t);print_r(array _count_values($x)); Eğer bu kodu çalıştırırsak bize [b]"Array ( [a] => 3 => 2 [t] => 2 [y] => 2 [k] => 1 [d] => 1 [w] => 1 [g] => 1 [v] => 1 [e] => 1 )" gibi bir çıktı verecektir. Burada da görüldüğü gibi a değerinin üç kez kullanıdığı, b değerinin 2 kez kullanıldığı gibi ifadeler yer almakta. Anladınız zannediyorum ![]() Array fonksiyonu için yazılabilecek birkaç fonksiyon daha var ama şimdilik bu kadar yeterli diye düşünüyorum. İleride lazım olursa onları da yazarım. Hoşçakalın. |
|
![]() |
![]() |
![]() |
Etiketler |
dersler, notlar, php |
|
|