【发布时间】:2019-07-10 08:24:37
【问题描述】:
参考这篇帖子php-sort-array-alphabetically-then-numerically
它不能解决我的问题。
我有一个数组名$test,如果print_r($test)会显示
Array
(
[0] => Array
(
[hrid] => 1
[masterroom] => B4-G-3
)
[1] => Array
(
[hrid] => 2
[masterroom] => B4-G-1
)
[2] => Array
(
[hrid] => 7
[masterroom] => B4-1-2
)
[3] => Array
(
[hrid] => 8
[masterroom] => B4-1-1
)
[4] => Array
(
[hrid] => 9
[masterroom] => B4-1-10
)
[5] => Array
(
[hrid] => 10
[masterroom] => B4-G-10
)
)
我在下面尝试(参考上面链接的答案):
function myComparison($a, $b){
if(is_numeric($a) && !is_numeric($b))
return 1;
else if(!is_numeric($a) && is_numeric($b))
return -1;
else
return ($a < $b) ? -1 : 1;
}
usort ( $test , 'myComparison' );
结果是:
Array
(
[0] => Array
(
[hrid] => 1
[masterroom] => B4-G-1
)
[1] => Array
(
[hrid] => 2
[masterroom] => B4-G-3
)
[2] => Array
(
[hrid] => 7
[masterroom] => B4-1-1
)
[3] => Array
(
[hrid] => 8
[masterroom] => B4-1-2
)
[4] => Array
(
[hrid] => 9
[masterroom] => B4-1-10
)
[5] => Array
(
[hrid] => 10
[masterroom] => B4-G-10
)
)
但我希望它是:
Array
(
[0] => Array
(
[hrid] => 1
[masterroom] => B4-G-1
)
[1] => Array
(
[hrid] => 2
[masterroom] => B4-G-3
)
[2] => Array
(
[hrid] => 10
[masterroom] => B4-G-10
)
[3] => Array
(
[hrid] => 7
[masterroom] => B4-1-1
)
[4] => Array
(
[hrid] => 8
[masterroom] => B4-1-2
)
[5] => Array
(
[hrid] => 9
[masterroom] => B4-1-10
)
)
谢谢。
【问题讨论】:
-
在当前数据中你有
[hrid] => 1 [masterroom] => B4-G-3,而在预期结果中有[hrid] => 1 [masterroom] => B4-G-1,对吗?