我正在使用PHP 5.6.6,并且在array_multisort
中遇到NATURAL_SORT
问题。
如果我这样做:
sort($var);
我得到正确的"自然"输出,例如
p0_00001
p0_00002_
p0_00002_00011
p0_00002_00012
p0_00002_00013
p0_00002_00014
p0_00003_
p0_00003_00015
p0_00003_00016
p0_00003_00017
p0_00003_00018
p0_00003_00019
p0_00003_00020
p0_00003_00021
p0_00003_00022
p0_00003_00023
p0_00003_00024
p0_00004_
p0_00004_00025
有了array_multisort,我就这样坚持了下来:
array_multisort($var, $foo, $bar)
这给了我:
p0_00001
p0_00002_
p0_00003_
p0_00004_
p0_00005_
p0_00006_
p0_00007_
p0_00008_
p0_00009_
p0_00010_
p0_00002_00011
p0_00002_00012
p0_00002_00013
p0_00002_00014
p0_00003_00015
p0_00003_00016
p0_00003_00017
p0_00003_00018
p0_00003_00019
p0_00003_00020
p0_00003_00021
p0_00003_00022
p0_00003_00023
p0_00003_00024
我试过了
array_multisort($var, SORT_NATURAL, $foo, $bar)
但输出保持不变。我不明白如何用户array_multisort
以获得sort($var)
的"自然"输出
试试这个:
array_multisort ($var, SORT_ASC, SORT_REGULAR,
$var2, SORT_ASC, SORT_REGULAR,...);
哪个$var, $var1, $var2
...是要排序的数组
注意:这些数组是通过引用传递的
试试这个
$dataPoints1 = array('p0_00201','p3_00002_','p2_00002_00011','p0_00022_00012','p0_00002_00013','p0_00002_00014','p0_00003_');
echo "<pre>";
print_r($dataPoints1);
array_multisort($dataPoints1);
echo "<pre>";
print_r($dataPoints1);