PHP按数字顺序排序字符串值范围数组

时间:2016-03-29 13:26:20

标签: php arrays string sorting numeric

我有一系列范围类型值257-1024,1-256,1025-2056。所有这些值都是动态生成的并且定位为randomed。在进行输出之前,我必须按照数字ASC顺序对它们进行排序。使用sort或natsort函数将输出显示为1-256,1025-2056,257-1024,因为php将其识别为字符串。是否有内置功能,可以按数字顺序排序/排列,即1-256,257-1024,1025-2056

2 个答案:

答案 0 :(得分:2)

您可以在此处使用natsort() function

$time=array("1:00 PM","2:00 PM","3:00 PM","4:00 PM","5:00 PM");

输出:

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

$a = natsort($array);

echo "<pre>";

print_r($array);

echo "</pre>";

希望这有帮助。

答案 1 :(得分: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
)