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