2012-04-27 38 views
0
<?php 
$rate=array ("M100B1000" => "40.00", "M1000B20000" => "80.00", "M500B10000" => "50.00", "MUnlimitedBUnlimited" => "240.00", "M5000BUnlimited" => "120.00 ") ; 
ksort($rate); 
print_r($rate); 
?> 

它給分揀率數組排序..PHP數組鍵與字符串和數字

M1000B20000 
M100B1000 
M5000BUnlimited 
M500B10000 
MUnlimitedBUnlimited 

我需要這個排序..

M100B1000 
M500B10000 
M1000B20000 
M5000BUnlimited 
MUnlimitedBUnlimited 

給一些想法...

+1

你想它由字符串或裏面的數值的長度排序? – Anirudh 2012-04-27 05:38:47

+0

排序不會**數字,這只是一個簡單的A-Z字符串排序comparisson,所以'M100B'不會在'M1000B'(多餘的0)之前。您將不得不手動排序/ reg表達式。 – Jakub 2012-04-27 05:39:17

回答

1

它看起來像你想根據字符串的大小對它進行排序,如果是的話看看這個例子

更多的解釋在這裏http://php.net/manual/en/function.sort.php

function shortestFirst(key($str1), key($str2)) { 

     return strlen(key($str1)) - strlen(key($str2)); 

    } 
    $rate=array ("M100B1000" => "40.00", "M1000B20000" => "80.00", "M500B10000" => "50.00", "MUnlimitedBUnlimited" => "240.00", "M5000BUnlimited" => "120.00 "); 


    uasort($data, 'shortestFirst'); 
     print_r($data); 
     echo '</pre>'; 
+0

M100B1000, M500B10000, M1000B20000,MUnlimitedBUnlimited M5000BUnlimited,最後是改變 – Vaishu 2012-04-27 05:37:38

+0

嗯嘗試使用..完美排序利用按鍵 – 2012-04-27 05:40:03

+0

鍵.. – Vaishu 2012-04-27 05:43:14