我有以下数组结构:
Array ( [0] => Array ( [configuration_id] => 10 [id] => 1 [optionNumber] => 3 [optionActive] => 1 [lastUpdated] => 2010-03-17 15:44:12 )
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
基于,以增量方式对数组进行排序的最佳方法是optionNumber什么?
因此结果如下所示:
Array ( [0] => Array ( [configuration_id] => 8 [id] => 1 [optionNumber] => 1 [optionActive] => 1 [lastUpdated] => 2010-03-17 15:44:12 )
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
问题来源于stack overflow
使用usort。
function cmp_by_optionNumber($a, $b) { return $a["optionNumber"] - $b["optionNumber"]; }
...
usort($array, "cmp_by_optionNumber"); 在PHP≥5.3中,应改为使用匿名函数:
usort($array, function ($a, $b) { return $a['optionNumber'] - $b['optionNumber']; }); 请注意,以上两个代码均假定$a['optionNumber']为整数。使用@St。约翰逊的解决方案,如果他们是字符串。
在PHP≥7.0,使用飞船运营商<=>,而不是减法,以防止溢出/截断问题。
usort($array, function ($a, $b) { return $a['optionNumber'] <=> $b['optionNumber']; });
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。