İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

array key leri uzunluklarına göre sıralama

Alexis

0
İyinet Üyesi
Katılım
24 Ekim 2005
Mesajlar
678
Reaction score
5
Bir arrayım var, bunu key lerin harf sayısına göre büyükten-küçüğe doğru nasıl sıralarım ?

arrayım şu ise

PHP:
$kelime_arr = array(
	'phpBB'		=> array(
		'url'	=> 'www.phpbbturkiye.net',
		'title'	=> 'phpBB Türkiye',
	),
	'phpBB3'	=> array(
		'url'	=> 'www.phpbbturkiye.net',
		'title'	=> 'phpBB Türkiye',
	),
	'phpBB 3.0.2'	=> array(
		'url'	=> 'www.phpbbturkiye.net',
		'title'	=> 'phpBB Türkiye',
	),
);

bunu şu hale sort edecek:

PHP:
$kelime_arr = array(
	'phpBB 3.0.2'	=> array(
		'url'	=> 'www.phpbbturkiye.net',
		'title'	=> 'phpBB Türkiye',
	),
	'phpBB3'	=> array(
		'url'	=> 'www.phpbbturkiye.net',
		'title'	=> 'phpBB Türkiye',
	),
	'phpBB'		=> array(
		'url'	=> 'www.phpbbturkiye.net',
		'title'	=> 'phpBB Türkiye',
	),
);
 

hidonet

0
İyinet Üyesi
Katılım
19 Mayıs 2008
Mesajlar
74
Reaction score
0
Soyle yapabilirsin...

Once butun keylerin uzunluklarini alip onune sifir ekleyerek bir rakam olusturursun...

Bu sayede keylere gore siralanir...

Ornek :

PHP:
$kelime_arr = array(
	'phpBB5'    => array(
			'url'    => 'www.phpbbturkiye.net',
			'title'    => 'phpBB Türkiye',
	),
	'phpBB'        => array(
			'url'    => 'www.phpbbturkiye.net',
			'title'    => 'phpBB Türkiye',
	),
	'phpBB3'    => array(
			'url'    => 'www.phpbbturkiye.net',
			'title'    => 'phpBB Türkiye',
	),
	'phpBB4'    => array(
			'url'    => 'www.phpbbturkiye.net',
			'title'    => 'phpBB Türkiye',
	),
	'phpBB 3.0.2'    => array(
			'url'    => 'www.phpbbturkiye.net',
			'title'    => 'phpBB Türkiye',
	),
	'phpBB7'    => array(
			'url'    => 'www.phpbbturkiye.net',
			'title'    => 'phpBB Türkiye',
	),
);  

foreach ($kelime_arr as $key=>$val) 
{
	$zkey=str_repeat("0",4-strlen(strlen($key))).strlen($key)."_".$key;

	$arr2[$zkey]=$val;
} // foreach sonu

ksort($arr2);

print "<pre>";
print_r($arr2);
print "</pre>";

Boyle cikti verir

Kod:
Array
(
    [0005_phpBB] => Array
        (
            [url] => www.phpbbturkiye.net
            [title] => phpBB Türkiye
        )

    [0006_phpBB3] => Array
        (
            [url] => www.phpbbturkiye.net
            [title] => phpBB Türkiye
        )

    [0006_phpBB4] => Array
        (
            [url] => www.phpbbturkiye.net
            [title] => phpBB Türkiye
        )

    [0006_phpBB5] => Array
        (
            [url] => www.phpbbturkiye.net
            [title] => phpBB Türkiye
        )

    [0006_phpBB7] => Array
        (
            [url] => www.phpbbturkiye.net
            [title] => phpBB Türkiye
        )

    [0011_phpBB 3.0.2] => Array
        (
            [url] => www.phpbbturkiye.net
            [title] => phpBB Türkiye
        )

)
 

Alexis

0
İyinet Üyesi
Katılım
24 Ekim 2005
Mesajlar
678
Reaction score
5
Cevap için teşekkürler. Ancak, düşündüğüm şeyin yapmak istediğim şeyi karşılamayacağını anladım.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst