PHP | Karakter Uzunluğuna Göre Listeleme

Merhaba arkadaşlar.
Bir etiket sistemi var diyelim ve veriler veritabanından çekiliyor.
Bu verileri çekerken karakter uzunluğuna göre nasıl sıralayabiliriz?

<?php
$cek = mysql_query("SELECT * FROM etiketler ORDER BY etiket_id ASC");
	while( $etiket = mysql_fetch_array($cek) ){
		echo $etiket["etiket"]."<br>";
	}
?>

 

Şu fonksiyonu kullanabilirsin. Ya da Google'da "php sort letter length" olarak aratabilirsin.

function sort($a,$b){
    return strlen($b)-strlen($a);
}

usort($array,'sort');

Kaynak: https://stackoverflow.com/a/838239

Bu şekilde denedim bir sonuç alamadım. Aşağıdaki hatayı veriyor.

function etiketler(){
	
	$sec = mysql_fetch_array (mysql_query("SELECT * FROM etiketler"));

	function sort($a,$b){
		return strlen($b)-strlen($a);
	}
	
	echo usort($sec,'sort');
}

Birde bu şekilde denedim ekrana sadece 1 yazıyor.

function etiketler(){
	
	$sec = mysql_fetch_array (mysql_query("SELECT * FROM etiketler"));

	function etiket($a,$b){
		return strlen($b)-strlen($a);
	}
	
	echo usort($sec,'etiket');
   
    // Bu şekilde de yaptım ama olmadı.
    echo usort($sec["etiket_icerik"],'etiket');
}

Sonuç olarak bir sonuca ulaşamadım.

Sorunu bu şekilde çözdüm.

$query = mysql_query("SELECT etiket_id,LENGTH(etiket_icerik) AS karakter, etiket_icerik FROM etiketler ORDER BY karakter ASC");
while($row = mysql_fetch_array($query)){
	echo $row["etiket_icerik"]."<br>";
}

 

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git