Her programlama dilinde olduğu gibi php’de de diziler vardır ve birçok uygulamada kullanılmaktadır. Dizinin verilerini düz veya tersten sıralamak için öyle çok fazla uğraşmanıza da gerek yok. Php’nin sort() gibi kendi fonksiyonlarıyla kolaylıkla bu işlemi gerçekleştirebiliriz. Tabi konuyu anlatırken dizinin elemanlarının sadece sayı olmayıp yazı(string) da olabileceğini unutmamak lazım.
Normal Diziler
Öncelikle normal bir diziyi sıralayalım. İlk dizimiz beş adet rastgele diziye girilmiş olan isimden oluşsun. sort() fonksiyonunu dizimizde çalıştırıyoruz.
[php]< ?php $isimler = array("ceyhun", "selin" , "tayfun", "ahmet", "nalan");
sort($isimler);
//cikti alma fonksiyonu
for ($i=0; $i <= 4; $i++)
echo $isimler[$i]."<br \>";
?> [/php]
Bu görmüş olduğunuz fonksiyonda diziye 5 adet veri girildikten sonra veriler sıraya sokulur ve ekrana yazılır. Çıktısında tahmin edebileceğiniz gibi dizimiz alfabetik sıraya sokulmuş olacaktır.
ahmet
ceyhun
nalan
selin
tayfun
Dizinin elemanlarını sayılardan oluştursak da uygulama ve sonuç değişmeyecektir.
[php]< ?php $rakamlar = array("3", "7" , "2", "4", "3.5");
sort($rakamlar);
//cikti alma fonksiyonu
for ($i=0; $i <= 4; $i++)
echo $rakamlar[$i]."<br \>";
?>[/php]
Yukarıdaki kodun çıktısında sayılar sıraya sokulmuş olacaktır yani şu şekilde.
2
3
3.5
4
7
Birleştirilmiş Diziler
Dizimizin değerleri yukarıdakiler gibi tek yapılı değil çift yapılı yani birleştirilmiş olabilirler. Bu durumda da sıralama işlemi için asort() fonksiyonunu kullanırız.
[php]< ?php
$fiyatlar = array ( "kalem" => "2.50",
"cetvel" => "1.25",
"defter" => "4.00",
);
asort($fiyatlar);
//cikti alma fonksiyonu
foreach($fiyatlar as $key => $value)
echo $key."’in fiyatı ".$value." ytl<br />";
?>[/php]
Bu fonksiyonda sıralama fiyatlara göre olacaktır. Doğal olarak çıktı fiyata göre sıralanmış şekildedir.
cetvel’in fiyatı 1.25 ytl
kalem’in fiyatı 2.50 ytl
defter’in fiyatı 4.00 ytl
Eğer fiyata göre değil de ürünün ismine göre sıralamak isteseydik ksort() fonksiyonunu kullanabilirdik. Kullanımı yukarıdakinin aynısıdır.
Şuana kadar sort(), asort(), ve ksort() fonksiyonlarından bahsettim. Bunların karşılığı olan ve dizileri tersten sıralamaya yarayan rsort(), arsort() ve krsort() fonksiyonları da vardır ve aynı şekilde kullanabilirsiniz.
sort(),asort(),ksort()
komutlarının tam olarak hangi mantıkla çalıştığını ve ne işe yaradığını belirtmemişsiniz,kullanımına ağırlık vermişiniz. rica etsem bu konuda açıklamalar yapabilirmisiniz ?
arsort(); kullandığımda numerik değerleri sıralarken ilk rakama göre sıralıyor, sayıların büyüklüklerine göre değil. Buna nasıl bir çözüm getirebiliriz?
@Balkoncu
Bir yanlışın olacak çünkü bu fonksiyonların hepsi ascii’ye göre sıralama yapıyor. Bilindiği üzere Ascii’de bildiğimiz sayı sıralamasına göredir.
Bu fonksiyon gerçekten baya bir iş kolaylaştırıyor. C’de bu sıralamayı yapmak için en az 5 değişken tanımlamasına 3-4 satır koda ihtiyaç var. Tek bir fonksiyonla bu işlemi gerçekleştirebilmek çok güzel.
Ayrıca for döngüsünde $i değişkenini tersten yani 4’ten 0’a işletirek tersten sıralama yapabiliriz.
http://www.mutasyon.net/kitapoku.asp?id=169
dizilerde silme komutunu kullanıyoruz ya Diziden Kesit Alma deniyor onu browsere nasıl yazdırcağız lütfen cevap gönderin çok acil meslek lisesi
yawru şu paragraflara verdiğin text-indent den dolayı sıraladığın dizilerin ilk öğesi içerden başlamış…class larını değiştirde görsellk düzelsin..saygılar..