Php 数组_multisort似乎忽略了自然排序
我使用的是PHP5.6.6,我在Php 数组_multisort似乎忽略了自然排序,php,sorting,Php,Sorting,我使用的是PHP5.6.6,我在array\u multisort中遇到了NATURAL\u 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_00
array\u multisort
中遇到了NATURAL\u 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\u multisort
来获得排序($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);
$dataPoints1=array('p0_00201'、'p3_00002'、'p2_00002_00011'、'p0_00022_00012'、'p0_00002_00013'、'p0_00002_00014'、'p0_00003");
回声“;
打印(数据点1);
数组_multisort($dataPoints1);
回声“;
打印(数据点1);
thx谢谢你的回答,但它并没有把它归类为“自然”。。。如果“SORT\u NATURAL”或/incombination“SORT\u ASC”通过与否,我的输出根本不会改变……我已经更新了我的回答:使用SORT\u REGULAR
而不是SORT\u NATURAL
,SORT
默认使用SORT\u REGULAR
非常感谢您的努力,但是SORT\u REGULAR
也不会改变我的输出……:/请给我你的输入数组:)$var[]=“p0_00001”代码>$var[]=“p0_00002”代码>$var[]=“p0\U 00002\U 00011”代码>$var[]=“p0\U 00002\U 00012”代码>$var[]=“p0\U 00002\U 00013”代码>$var[]=“p0\U 00002\U 00014”代码>$var[]=“p0\U 00003”代码>$var[]=“p0\U 00003\U 00015”代码>$var[]=“p0\U 00003\U 00016”代码>$var[]=“p0\U 00003\U 00017”代码>$var[]=“p0\U 00003\U 00018”代码>$var[]=“p0\U 00003\U 00019”代码>$var[]=“p0\U 00003\U 00020”代码>$var[]=“p0\U 00003\U 00021”代码>$var[]=“p0\U 00003\U 00022”代码>$var[]=“p0\U 00003\U 00023”代码>$var[]=“p0\U 00003\U 00024”代码>$var[]=“p0_00004”代码>$var[]=“p0\U 00004\U 00025”代码>$var2=$var代码>排序($var)代码>array\u multisort($var,$var2)
对不起,伙计们,我刚刚发现$foo
和$bar
的长度与$var
的长度不同。。。。现在可以工作了……thx man,你的例子告诉我,$foo
和$bar
的长度与$var
的长度不同。。。。现在可以工作了