【问题标题】:usort sorting multiple fields boolean and numberusort 排序多个字段布尔值和数字
【发布时间】:2021-10-28 11:16:53
【问题描述】:

我的主要数组是:

Array ( 
    [0] => Array ( 
        [active] => true
        [age] => 15
    )
    [1] => Array (
        [active] => false
        [age] => 10 
    )
    [3] => Array (
        [active] => false
        [age] => 31 
    )
    [4] => Array (
        [active] => true
        [age] => 45
    )
)

我需要使用函数 usort 对数组进行排序,如下所示:

Array ( 
    [0] => Array ( 
        [active] => true
        [age] => 15
    )
    [1] => Array (
        [active] => true
        [age] => 45
    )
    [3] => Array (
        [active] => false
        [age] => 10
    )
    [4] => Array (
        [active] => false
        [age] => 45
    )
)

在函数 usort 中,我希望有两种基于“活跃”和“年龄”的分类

【问题讨论】:

  • 好的,那么您尝试了什么,向我们展示您遇到问题的代码
  • 我无法使用函数 usort!
  • 可能值得展示您尝试过的代码,可能是一个简单的修复。

标签: php arrays sorting multidimensional-array


【解决方案1】:

我希望这个答案会让你满意

$cmp = function ($a, $b) {
    if ($a['active'] == $b['active']) {
        return $a['age'] < $b['age'] ? -1 : 1;
    } else if ($a['active'] == true) {
        return -1;
    } else {
        return 1;
    }
};

usort($arr, $cmp);

【讨论】:

  • 从什么时候开始可以将函数分配给 php 中的变量? $cmp = function ($a, $b)
  • @AltimusPrime 它在php中调用anonymouse函数,这是与它相关的页面php.net/manual/en/functions.anonymous.php
  • @Hossein 对不起,我更新了答案
猜你喜欢
  • 2012-03-04
  • 2023-03-11
  • 2014-05-13
  • 2012-09-30
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 2014-07-16
相关资源
最近更新 更多