我有一个字符串数组:
0 - 5 50-100 10-50 150-250 100-150
现在我想自动将它们排序为:
0-5 10-50 50-100 100-150 150-250
我该怎么做?
答案 0 :(得分:4)
http://www.php.net/manual/en/function.natsort.php 使用“自然顺序”算法对数组进行排序
$a = array("0-5", "50-100", "10-50", "150-250", "100-150");
natsort($a);
print_r($a);
结果:
Array
(
[0] => 0-5
[2] => 10-50
[1] => 50-100
[4] => 100-150
[3] => 150-250
)
注意:密钥将保持不变并且不会重新编号。
如果这不是理想的结果,您可能需要在排序后自行重新编号:
foreach ($a as $v)
$new_a[] = $v;
$a = $new_a;
或甚至更好:( thx @liquorvicar)
$a = array_values( $a );
答案 1 :(得分:2)
您需要使用 natsort()
功能。它将数值“排序为人”:)
$input = array('0-5', '50-100', '10-50', '150-250', '100-150');
natsort($input);
print_r($input);