![]() |
|
| |||||||
|
| | Seçenekler |
|
#1
| |||||
| |||||
Dizi Değişkenleri "Array"Şimdi arkadaşlar,geldik dizi değişkenleri konumuza,Çok zor olmayan bir konu olmasına karşılık internet üzerinde yeterli olarak açıklayıcı döküman olmaması yüzünden dizi değişkenleri konusunda php öğrencileri zorluk çekmektedirler.Onu bu çalışmamızda aşıcaz insallah.O yüzden dizi değişkenleri konusuna kendinizi pür dikkat vermelisiniz,dolayısıyla konunun bir sonraki sayfasında foreach döngüsünü bir çok yerde kullanıcak olmamız,bizim bu konu üzerinde ehemmiyetle durmamızı mecburlaştırmıştır. Şimdi dizi değişkenleri ne demek?,elinizde boncuk taneleri var,bunları bir arada tutan zincire ve olusan kumeye dizi denir,Şimdi o halde PHP de dizi değişkenleri nasıl tabir edilir ona bakalım isterseniz.Php bir komutun dizi olmasını anlaması için array komutundan yararlanır,yada diziye verilen köşeli parantez içerisinde ki değişkende php bunun dizi olduğunu anlamaktadır.O halde ufak bir örnek verelim. $dizi []="ali"; $dizi []="webmaster"; $dizi {}="balikesir"; Dizi değişkenlerimiz bu tablodaki gibi PHP ye okutturula biliyor,anlayacağınız gibi verilen değişkenin önüne köşeli parantez açılırsa,PHP bunu dizi değişkeni olarak algılıyor ve dizi kurallarına göre sonuç basıyor.Farkedeceğiniz üzere yukarıda 3 değişik dizi modellemesi yaptık,yine dikkatinizi çekecektir ki aynı dizi modellemesi üzerinde 3 değişik değer verildi.Köşeli parantez yerine süslü parantez de kullanabilirsiniz,değişen bir şey olmaz.O halde bunları öğrendik,iyi ama bunları nasıl ekrana basıcaz.Gayet basit arkadaşlar,ekrana basımdan önce aklımdayken su hususları belirtmek istiyorum.Php de diziler 1 den başlamaz arkadaşlar,0 dan başlar,dolayısıyla 3.dizi demek 0,1,2,3,4 olan yani 4.sıradaki terim demek,bunu unutmayalım. Ekrana dizileri basım yöntemine geçersek,bunları nasıl ekrana basıcaz isterseniz sizinle deneme yanılma yöntemiyle öğrenmiş olalım arkadaşlar,Aşağıdaki kodu dizi01.php olarak dizininize kaydedin. <?php $dizi []="ali"; $dizi []="webmaster"; $dizi {}="balikesir"; echo $dizi []; ?> Çalıştırın bakalım karşınıza ne gelecek.Hata verdi değil mi! hımmm...!!! o halde hatamızı düzeltmek için ufacık bir ipucu vereyim size,sunucu dizi değişkeninin sıralamasını görmezse,programı çalıştırmaz,yani hata verir.O halde alttaki kodu dizi02.php olarak kaydedelim bakalım. <?php $dizi [1]="ali"; $dizi [2]="webmaster"; $dizi {3}="balikesir"; echo $dizi [1]; ?> Bu kodu çalıştırın bakalım karşınıza ne gelecek.Çalıştı değil mi? o halde neymiş mantık,dizi değişkenlerinde sıra numarasını mutlaka belirtmeliyiz.Şimdi bir ayrıntıdan bahsetmek gerekirse,burada sıra numaralarında rakam kullandık,harfte kullanabiliriz ancak buraya dikkat arkadaşlar harf kullanırken $dizi [a] şeklinde değilde $dizi['a'] şeklinde kullanmalıyız,rakam kullanırsak tırnak kullanmamız gerekmez,ama harf kullanırsak tırnak kullanmamız gerekir.Bu ayrıntıya dikkat edelim. Şimdi gelelim array komutuyla dizi değişkenlerimizi Php de tanıtmaya,array komutuyla bir diziyi istediğimiz bir değişkende depolayabiliriz,dizi nesnelerimizi yazarken,tek tırnak kullanarak ve diğer nesneyle ayırmak için virgül kullanırız,Şimdi aşağıdaki kodu dizi03.php olarak kaydedin. <?php $dizi=array ( 1=>'ali', 2=>'filiz', 3=>'gökhan', 4=>'yasemin' ); echo $dizi [2]; ?> Bu kodu çalıştırdığınızda sunucu array komutundan sonra ki dizinin içine girip 2.nesneyi alıp ekrana basıcaktır,yani ekranda filiz yazısını göreceksiniz.Ancak sadece echo $dizi; olarak yazsaydık bu sefer karsınıza array yazısı gelecekti,cunku köşeli parantezle sıralama belirtmediğimiz için sunucu bunu dizi olarak algılamayacak ve parantez ve parantez içini görmeyecektir.Dolayısıyla dizi değişkenimiz şöyle olacaktır; $dizi=array; dolayısıyla biz echo $dizi; olarak baskı komutu hazırlasaydık karsımıza sadece array yazısı gelecekti.O yüzden daha öncede söylediğim gibi PHP bir komutun dizi olduğunu anlayabilmesi için komutta mutlaka köşeli parantez yada süslü parantezle değişkeni tanımlamalıyız. E peki hocam,bu dizinin hepsini ekrana basmamız mümkün değil mi derseniz,tabi ki mümkün derim.Ancak dizinin hepsini ekrana basabilmemiz için,count komutunu bilmemiz gerekecektir,cunku mantık olarak.For döngüsüyle yazabilmemiz için dizide bulunan verisayısını bilmemiz gerekecektir.neden peki dediğimizde şöyle diyebilirim,hatırlayacağınız üzere for komutuyla for (değişken; artık koşulu; artık koşulu); yada for ($i="" $i<=istenilen döngü nesnesi; $i++); bu şekilde kodlama yapmıştık,istenilen döngü nesnesi ise,ekrana basılacak döngünün dönmesi için kac adet nesne basılacağını bize söylüyordu.O halde dizi değişkenlerinde bu adet olarak nesneyi bilebilmemiz için dizi değişkenlerinde bize dizi içinde ne kadar nesne olduğunu söyleyen count komutunu bilmemiz gerekecektir.O halde bir dizi içinde ne kadar nesne olduğunu öğrenebilmek için aşağıdaki tablodaki örneği dizi04.php olarak kaydedin. <?php $dizi=array ('ali','mehmet','yasin','filiz','hayrettin','kaan' ,'canan'); echo count ($dizi); ?> Bu komutu çalıştırdığınızda dizi içinde kaç nesne olduğunu söyleyen bir rakam gelecektir,bu rakam 7 olarak ekranda gözükecektir,cunku dizi nesnelerinin toplam sayısı göreceğiniz üzere 7 dir,o halde anladığınız gibi count komutu dizi değişkenlerinin toplam nesne sayısını bize vermektedir.(count yerine sizeof komutunuda kullanabilirsiniz,aralarında fark yoktur.)O halde bunuda öğrendikten sonra dizi nesnelerimizin tümünü nasıl ekrana basıcaz gelin isterseniz bu kodlamayı yapalım.Aşağıdaki kodlamayı dizi05.php olarak kaydedin. <?php $dizi=array ('ali','mehmet','yasin','filiz','hayrettin','kaan' ,'canan'); for ($i=0; $i<=count ($dizi); $i++) { echo "$dizi[$i]<br>\n"; } ?> Bu komutu çalıştırdığınızda dizi içindeki nesneleri alt alta sıralanmış bir şekilde ekranda göreceksiniz.O halde komutu açıklamak gerekirse,ilk önce dizi değişkenimizi oluşturduk,bakın arkadaşlar burda çok önemli bir ayrıntıya değinmek istiyorum,dizi nesnelerini tek tırnakla ve virgülle diğer nesnelerden ayırdık,yani daha önceki örneklerimiz de de ayırmıştık fakat,daha önceki örneklerimizde sıralama numarası tanıttık,yukarıdaki örneklere bakarsanız anlayacaksınız.Fakat burda sıralama numarası vermedik,eğer ki sıralama numarası verip her nesneye 1 den baslayarak numara verseydik o zaman for komutunun içindeki değişken 0 rakamı değilde numaralandırma olarak 1 sayısı verilecekti.Buraya dikkat edin.Bu dizi değişkenimizde böyle bir sey yapmadık o halde değişkenler 0 dan başlayacaktır,cunku php de dizi değişkenleri 0 ile başlar. ne demek istediğimi aşağıdaki tablolara bakarak anlayacaksınız. <?php //sıralama numarası verilmiş hali $dizi=array ( 1=>'ali', 2=>'filiz', 3=>'yasin' ); for ($i=1; $i<=count ($dizi); $i++) { echo "$dizi[$i]<br>\n"; ?> .................................................. ............................................... <?php //sıralama numarası verilmemiş hali $dizi=array ('ali','filiz','yasin'); for ($i=0; $i<=count($dizi); $i++) { echo "$dizi[$i]<br>\n"; } ?> Şimdi ilk koda dikkat edin,sıralama numarası verilmiş hali,dolayısıyla for komutunun içindeki $i değişkeni de sıralama olarak 1 den başlayacaktır,eğer $i değişkenine 1 yerine 0 verirseniz,dizi nesnelerinde 0 a karşılık gelen bir nesne olmadığı için sunucu ekrana bir boşluk bırakıp daha sonra istenilen nesneleri basacaktır,deneyin isterseniz farkına varırsınız ilk olarak $i=1 haliyle deneyin ve çalıştırın,daha sonra sayfayı kapatmadan $i değişkenini değiştirip 0 yazın ve kaydedin yine aynı isimle,ve daha önce kapatmadığınız browserinizi yenileyin,ufak bir değişiklikle nesneleriniz bir boşlukla satır kaydıracaktır, Diğer sıralama verilmemiş haline bakarsak,herhangi bir sıralama yapmadık,dolayısıyla buraya $i değişkenine 0 vermek zorundasınız,eğer ki 1 verirseniz ekranda ali nesnesini göremezsiniz.Çünkü sıralama numarası verilmeyen dizilerde nesne basılması 0 dan başlar..Bu ayrıntıya dikkat etmekte fayda var. YAZAN:ali gurbuz |
|
#2
| |||||
| |||||
| FOREACH DÖNGÜSÜ Döngüler konusunda bahsedeceğimiz son konumuz foreach komutudur.Daha öncede bahsettiğimiz gibi,while ve for komutları döngü konularında işlenir, foreach komutuda döngü kavramıdır aslında,ancak bu komut dizi değişkenleriyle birlikte gösterilmesi gerekiyor,Onun için dizi değişkenlerini kavramış olmanız gerekecektir, bu komutu öğrenebilmeniz için. Foreach komutu bir diziyi ekrana basma yönteminde diğerlerine oranla daha pratik bir yazılıma sahiptir,diziyi ekrana basma,sıralama,alfabetik olarak dizim ve dizi değişkenleri arasında bilgi alışverişini sağlamayı ,bu komutumuzla öğrenmeye çalışacağız.Şimdi komutumuzu açıklamaya çalışmadan önce,dizi değişkenleri tanımı konumuzu hafiften hatırlayacak olursak,tüm diziyi ekrana basmamız için count komutunu kullandık ve daha sonra ise for döngüsünden yararlanarak dizi içindeki nesnelerimizi ekrana bastık.Peki bunun daha kolay bir yolu yok mu ? Elbetteki var,işte foreach komutu bunun için bize kolaylık sağlamaktadır.Alltaki tablo içindeki kodu foreach01.php olarak kaydedin. <?php $dizi=array ('ali','webmaster','php','java','cfml','asp','html '); foreach ($dizi as $deger) { echo "$deger<br>\n"; } ?> Bu kodu çalıştırdığınızda değer değişkenine atadığımız yeni değişkenimiz bir döngüyle ekrana dizi içindeki nesneleri tek tek basmaktadır.(sunucu görüntüsü için tıklayın)Gördüğünüz gibi cok daha pratik bir komutla dizi içindeki nesneleri ekrana basmayı başarabildik.Ne yaptık isterseniz onu bir açıklayalım. $dizi adındaki değişkenimize nesnelerimizi depoladık.Tabi array komutuyla dizi olarak.(bunu unutmuyoruz) daha sonra foreach komutumuzla ekrana nesnelerimizi basıcaz.Ancak burada bir ayrıntıdan söz edelim,$dizi değişkenimizi direk alır foreach komutumuzun içine basması için atarsak olmaz,işte burada as komutuyla başka bir değişkene atıyalım ki,bu komutta foreach döngüsüne has olarak istediğimiz nesneleri ekrana basmak için yardımcı bir değişken olsun.İşte dizimizi baska bir değere atamak için kullandığımız komut as komutudur.Bu komutla $deger yeni değişkenimize dizimizi atıyoruz.ve bu yeni değişken nesneleri ekrana basmak için hazır bir değişkendir.ve echo ile bu değişkeni bastırıyoruz.Olay bu.Gayet basit hiç zorluğu yok.dizimizi alıyoruz as komutuyla diziyi ekrana basabilecek bir yeni değişkene atıyoruz.İşte bu yeni değişken nesneleri ekrana basan değişkenimizdir..Bizde bu yeni değişkenimizi alıyoruz ve baskıyla ekranda marifetini göster diyoruz Şimdi o zaman şöyle bir şey öğrenelim,bir dizi değişkenin içindeki nesnelerin herhangi birisinin kaçıncı sırada olduğunu öğrenmek için ne yaparız? bunun için foreach komutuyla anahtar kullanırız,şöyle ki; Aşağıdaki kodu foreach02.php olarak kaydedin. <?php $dizi=array ('f','r','a','s','t','z','k'); foreach ($dizi as $anahtar=>$deger) { echo "$anahtar=$deger<br>\n"; } ?> Şimdi bu kodu çalıştırdığımızda karşımıza sıralanmış olarak dizi nesnelerimiz alt alta çıktı,(sunucu görüntüsü için tıklayın) Ancak tek farkı göreceğiniz gibi,artık herhangi bir nesnenin kaçıncı sırada olduğunu biliyoruz .Komutumuzu öğrenmek gerekirse yaptığımız fazla bir şey yok,yine bir dizi adında değişken oluşturuyoruz ve bu dizi adında değişkene array komutumuzla dizi nesnelerimizi depoluyoruz.Daha sonra,foreach komutumuzla $dizi adındaki dizi listemizi $deger adlı yeni değişkenimize atıyoruz.tek farklı olarak yaptığımız herbir değer değişkenine gelen nesnelerimize anahtar bir sayı denk gelsin istedik,yani $deger 'e gelen dizi nesnelerimize anahtar ile kendisine özel eş bir sayı sağladık.ve bu nesnelerimizi $anahtar=$deger olarak bastırdık,burada anahtar ile her bir nesneye bir sayı geliyor.Olay bu $anahtar=$deger yerine $anahtar : $deger de yazabilirdiniz...sunucu görüntüsüne bakarsanız eşitlik yerine bu sefer iki nokta çıkacağını görürsünüz,o halde anahtar değerimiz,neymiş,her bir nesneye karşılık gelecek olan bir değermiş.Anladık değil mi arkadaşlar.Gayet basit. Şimdi o zaman gelelim,dizi nesnelerimizin ekrana basımında alfabetik sırada nasıl basıldığına.Bu komutlar için sort ve asort komutlarını kullanıcaz arkadaşlar.Dediğim gibi bütün verileri bazen alfabetik olarak sıralamak isteyebiliriz,bunun için aşağıdaki kodlamayı foreach03.php olarak kaydedin. <?php $dizi=array ('ali','ahmet','berkay','acelya','baysun'); sort ($dizi); foreach ($dizi as $anahtar=>$deger) { echo "<b>$anahtar</b>=<font color=\"#FF0000\">$deger</font><br>\n"; } ?> Bu kodu çalıştırdığınız da karşınıza dizi nesnelerimizin alfabetik olarak anahtar eş sayılı bir sıralaması gelecektir.(sunucu görüntüsü için tıklayın ) Ne yaptık onu açıklamak gerekirse,sadece sort komutunu kullandık fazla bir şey yapmadık.İlk önce dizi adlı değişkenimize array komutuyla nesnelerimizi depoladık.Daha sonra dizimizin sort komutuyla alfabetik sırada dizilmesini istedik ve dizimizi foreach komutuyla anahtar eş sayılı $deger adlı yeni değişkenimize attık ve baskı olarakta $anahtar=$deger olarak komutumuzu icra ettik. Burada dikkat edilmesi gereken husus;dizi nesnelerimizi alfabetik olarak sıalamak istediğimizde kesinlinle turkce karakter kullanmamaktır.Cunku PHP turkce karakterlere karakter sıralamasında destek vermiyor.Örneğin; acelya ismini açelya olarak denediğinizde karşınıza ilk olarak açelya çıkmayacaktır,dolayısıyla PHP açelya ismini a sıralamasında en sona atacak olup,açelya ismi 3.sırada yer alacaktır.Bu ayrıntıya dikkat etmek lazım. Dizimizdeki sıralama numarasına göre alfabetik sıraya alan komutumuzda asort komutudur arkadaşlar,bu komutumuzda dizi içinde daha da önce bahsettiğimiz gibi sıralama numarası verdiğimizde bunu alfabetik olarak ekrana dökme işlemi yapılır.Aşağıdaki kodu foreach04.php olarak dizininize kaydedin. <?php $dizi=array ( 'a'=>"ali", 'b'=>"berkay" ); asort ($dizi); foreach ($dizi as $anahtar=>$deger) { echo "$anahtar=$deger<br>\n"; } ?> Bu komut satırını çalıştırdığınız da ise; (sunucu görüntüsü için tıklayın) bizim dizi içinde yaptığımız sıralama numarasına göre ekranda bir çıktı göreceksiniz,böylelikle dizi içinde hem sıralamasız hemde sıralamalı şekilde alfabetik sıralamayı yapmamız mümkündür.Tabi PHP de artistik komutlarda var,ksort ve krsort komutları bu işlemlerin tersini yaparlar,yani tersten sıralama yaparlar.Bunlarla ilgili kodlama yapmıycam,aynı şekilde deneyerek siz kendiniz görün. Bazen birden çok dizi oluşturabiliriz ve bu dizileri birleştirmek isteyebiliriz,bunun için kullanacağımız komut array_merge() komutudur.Alttaki kodu foreach05.php olarak kaydedin. <?php $dizi1=array ('a','b','c','d'); $dizi=array ('e','f','g'); $yeni=array_merge($dizi1,$dizi2); foreach ($yeni as $deger){ echo "$deger<br>\n"; } ?> Bu komut satırını çalıştırdığımızda ise iki farklı oluşturduğumuz dizi nesnelerimiz array_merge komutumuzla $yeni adlı değişkende topluyoruz.Daha sonra bu değişkeni ekrana dökmesi için foreach komutumuzla $deger adlı baskılıycak değişkenimize atıyoruz ve en son olarak da bu baskılıycak değişkenimizi bastırıyoruz. Birden çok dizi yaptığımızda dizilerimizin içinde bulunan aynı nesneleri bazen göremiyebiliriz,bunun için bize PHP ,dizilerin içindeki nesnelerin aynı olduklarını ve bunları ekrana dökebilir.Bunun için PHP bize array_intersect() komutunu veriyor.Alttaki kodu foreach06.php olarak kaydedin. <?php $dizi1=array (1,2,3,4,5,6,7,8); $dizi2=array (1,2,3,4,5); $ayni_nesneler=array_intersect ($dizi1,$dizi2); foreach ($ayni_nesneler as $deger) { echo "$deger<br>\n"; } ?> Bu komutumuzda dizi nesnelerimizin içindeki aynı olan nesneleri ekrana basıyor. (sunucu görüntüsü için tıklayın ) Bu komutumuz bize bazen lazım olabilmektedir.Gerçi diğer komutlarımızda lazım oluyorda,bazıları biraz daha önemli tabi ki. YAZAN:ali gurbuz |
![]() |
| Arama Etiketleri: degiskenleri, dizi, quotarrayquot |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| "com" ve "net" gidiyor, "sevgi" ve "ankara" geliyor.. | kadınca | Haberler | 1 | 24-06-2008 02:12 |
| Hiç "Mesleğin nedir" diye sorduğunuzda size "Cenazelerde ağlıyorum" yanıtı aldığınız olduğu mu ? | kadınca | Haberler | 1 | 06-05-2008 04:02 |
| Tekbir Giyim'in "4 eşliyim kime ne" diyen patronu Karaduman "Tekeşlilik mümkün olsaydı, umumhaneler, kerhaneler olmazdı." dedi.. | kadınca | Haberler | 5 | 27-04-2008 02:04 |
| Bilgisayarınızı başlattığınızda "Geçersiz Boot.ini" veya "Windows başlatılamıyor" hata iletileriyle | kadınca | İşletim Sistemleri | 0 | 23-11-2007 12:08 |
| Bu yıl "Beynelmilel", "Polis" ve "Mutluluk" | kadınca | Haberler | 0 | 08-11-2007 11:05 |
![]() | ![]() |