Php ile array i özel key sirasina göre sıralamak
Temmuz 30, 2010 | In: Salata
İnternette biraz araştırdım bir sonuç bulamadım yapmak istediğim şey şu
$veri = array(1=>’zoo’,2=>’bar’,3=>’foe’);
elimizde böyle bir veri var biz bunun ekrana
$sira = array(3,1,2);
gibi bir sıra ile yazdırılmasını istiyoruz ama bunu nasıl yapacak anlayacak?
not: bu veri elime mysql de ” where id in(3,1,2) ” sonucunda geliyor ben 3,1,2 ye göre sıralamak istiyorum ama mysql
123 veya 321 diye sıralayabileceğimi söylüyor onu yapmak için 20 elemanım varsa 20 defa sorgu yapıp istediğim sırayı elde edebilirim asnıl mı
foreach($sira as $key=>$val) { sql = select … where id = $val ; row=fetch_assoc; echo row; }
gibi iç içe bir döngü ile sıralanabilirdi mysql kısmından umudu kestikten sonra php ile bu işi yapmak daha kolayıma geldi
Saho class ının içerisinde recurvise bir OzelSiralama fonksiyonu üretip işi oldukça az satırla çözebildim eminim başkalarınında eninde sonunda ihtiyacı olacak işe yarayacaktır
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* Author : Sahabettin Akca @Saho * Params : $list Array, $sort Array */ function OzelSiralama($icerik, $sira) { $i = 0; foreach ($icerik as $id => $urun) { if ($id == $sira[$i]) { $i++; continue; } else { unset($icerik[$id]); $icerik[$id] = $urun; $icerik = OzelSiralama($icerik, $sira); break; } } return $icerik; } |

















2 Responses to Php ile array i özel key sirasina göre sıralamak
isa yeter
Ağustos 22nd, 2010 at 00:25
select * from uyeler where id IN (1,3,2) ORDER BY FIELD(id,1,3,2);
olayı çözecektir
admin
Ağustos 22nd, 2010 at 23:06
eyv. isa sql için evet ama array sıralarken ben yine üsttekini kullanacağım =)