Merhabalar,
Databaseden çektiğim verileri foreach ile listeliyorum fakat number sütununda bulunan sayılara göre büyükten küçüğe göre sıralama yaptırmak istiyorum veriler listelenirken.
Bunun için pratik ne yapabilirim ?
Foreach içerisinde sütuna göre büyükten küçüğe sıralama hakkında!
6
●62
- 12-02-2025, 17:20:37El3anaor adlı üyeden alıntı: mesajı görüntüle
SELECT user.id, ud.balance FROM users INNER JOIN user_details AS ud ON ud.user_id = user.id ORDER BY ud.balance DESC
Denemedim ama bu tarz bir şey olması lazım
Edit: Eğer INNER JOIN yapılan tabloda veri olmama ihtimali varsa LEFT JOIN ile değiştirebilirsiniz. - 12-02-2025, 17:24:12Merhaba,
Eğer verileri veritabanından çekerken sıralamak istiyorsan, SQL sorgunda `ORDER BY` kullanabilirsin:
SELECT * FROM tablo_adi ORDER BY number DESC;
Eğer PHP tarafında sıralama yapmak istiyorsan, `usort()` fonksiyonunu kullanabilirsin:
$data = [ ["name" => "Ahmet", "number" => 5], ["name" => "Mehmet", "number" => 10], ["name" => "Ayşe", "number" => 7], ]; usort($data, function ($a, $b) { return $b['number'] <=> $a['number']; // Büyükten küçüğe sıralama }); foreach ($data as $row) { echo $row['name'] . " - " . $row['number'] . "<br>"; }Ama en iyi ve performanslı çözüm, SQL'de sıralamayı yaparak veriyi zaten doğru şekilde almak olacaktır.
Eğer ORM (Eloquent, Doctrine gibi) kullanıyorsan, ilgili ORM'nin `orderBy()` veya `sortByDesc()` gibi fonksiyonlarını kullanabilirsin. - 12-02-2025, 17:46:02PHP'de foreach kullanarak doğrudan verileri sıralayamazsın, çünkü foreach sadece döngüye almanı sağlar. Ama verileri sıralamak için önce usort() veya array_multisort() fonksiyonlarını kullanabilirsin.El3anaor adlı üyeden alıntı: mesajı görüntüle