2016-03-29 19 views
1

私は257-1024,1-256,1025-2056の範囲の値の配列を持っています。これらの値はすべて動的に生成され、ランダムに配置されます。出力を行う前に、数値のASC順に並べ替える必要があります。 sortまたはnatsort関数を使用すると、出力は1-256,1025-2056,257-1024として出力されます。これはPHPが文字列として認識するためです。 1〜256,257〜1024,1025〜2056、PHP並べ替え文字列値の範囲の配列を数字で並べ替え

+1

あなたは http://php.net/manual/en/function.usort.php usort PHPを使用して、独自のソート関数を作成することができます – shantanu

答えて

1

natsort() functionここでは、数値の範囲でソート/整列できる組み込み関数がありますか?

$array = array("257-1024", "1-256", "1025-2056"); 

$a = natsort($array); 

echo "<pre>"; 

print_r($array); 

echo "</pre>"; 

出力:

Array 
(
    [1] => 1-256 
    [0] => 257-1024 
    [2] => 1025-2056 
) 

この情報がお役に立てば幸いです。

0

usort()を使用すると、次のようにすることができます。

$array = ['257-1024', '1025-2056', '1-256']; 
usort($array, function($a, $b){ 
    return ((int)explode('-', $a)[1] < (int)explode('-', $b)[0]) ? -1 : 1; 
}); 
print_r($array); 

出力は以下のとおりです。

Array 
(
    [0] => 1-256 
    [1] => 257-1024 
    [2] => 1025-2056 
) 
関連する問題