我有一个范围类型值257-1024、1-2561025-256的数组。所有这些值都是动态生成和随机定位的。在输出之前,我必须按照ASC数字顺序对它们进行排序。使用sort或natsort函数给出的输出为1-2561025-2056257-1024,php将其识别为字符串。是否有一个内置函数可以按数字范围顺序进行排序/排列,即1-256257-10241025-256
您可以在这里使用natsort()函数。
$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
)
希望这能有所帮助。
您可以使用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
)