【问题标题】:array of array php order by 2 fields string and number数组 php 的数组按 2 个字段字符串和数字排序
【发布时间】:2016-07-12 08:06:18
【问题描述】:

我有一个数组,其中包含它的efl 数组,如 s['name'] s['age'] 我不知道具体如何表示结构 [ 或 },

tab {
       s { ['name']
            ['age']
         }

}

这是我的代码 函数 cmp($a, $b) { 返回 strcmp($a['name'], $b['name']); }

  usort($result, "cmp");

 foreach($result as $s) {
  foreach($s as $t) {
    DisplayError("antoine 20")
    DisplayError("antoine 88")
    DisplayError("antoine 19")
  }

}

我想先按姓名排序,然后按年龄排序

我搜索了很长时间但很难

【问题讨论】:

  • 我发现了一个技巧,我做了一个新数组 ['nameAge'] 并且我使用 function cmpNameAge($a, $b) { return strcmp($a['nameAge'], $b[ '姓名年龄']); }

标签: php arrays usort array-multisort


【解决方案1】:

你可以使用这个比较器:

function cmp($a, $b) {
    if ($a['name'] == $b['name']) {
        return $a['age'] - $b['age'];
    }
    return strcmp($a['name'], $b['name']);
}

usort($arr, 'cmp');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2018-05-29
    相关资源
    最近更新 更多