在PHP中使用多个条件对数组进行排序

望远镜

我知道还有其他一些关于使用多个条件进行排序的主题,但是它们不能解决我的问题。假设我有这个数组:

Array
(
    [0] => Array
        (
            [uid] => 1
            [score] => 9
            [endgame] => 2
        )

    [1] => Array
        (
            [uid] => 2
            [score] => 4
            [endgame] => 1
        )

    [2] => Array
        (
            [uid] => 3
            [score] => 4
            [endgame] => 100
        )

    [3] => Array
        (
            [uid] => 4
            [score] => 4
            [endgame] => 70
        )

)

我想对它排序,将得分最高的那个放在最前面。以同样的分数,我想要一个最低的残局号码在前。排序机制应将user1排在最前面,然后依次是user2、4和user3。

我使用这种排序机制:

function order_by_score_endgame($a, $b)
{
  if ($a['score'] == $b['score'])
  {
    // score is the same, sort by endgame
    if ($a['endgame'] == $b['endgame']) return 0;
    return $a['endgame'] == 'y' ? -1 : 1;
  }

  // sort the higher score first:
  return $a['score'] < $b['score'] ? 1 : -1;
}
usort($dummy, "order_by_score_endgame");

这给了我以下数组:

Array
(
    [0] => Array
        (
            [uid] => 1
            [score] => 9
            [endgame] => 2
        )

    [1] => Array
        (
            [uid] => 3
            [score] => 4
            [endgame] => 100
        )

    [2] => Array
        (
            [uid] => 2
            [score] => 4
            [endgame] => 1
        )

    [3] => Array
        (
            [uid] => 4
            [score] => 4
            [endgame] => 70
        )

)

如您所见,该数组未正确排序...有人知道我在做什么错吗?非常感谢!

罗纳克帕特尔

您的功能应如下所示:

function order_by_score_endgame($a, $b){
if ($a['score'] == $b['score'])
    {
      // score is the same, sort by endgame
      if ($a['endgame'] > $b['endgame']) return 1;
    }
    // sort the higher score first:
    return $a['score'] < $b['score'] ? 1 : -1;
}

试试看。它会给你这样的结果:

Array
(
[0] => Array
    (
        [uid] => 1
        [score] => 9
        [endgame] => 2
    )

[1] => Array
    (
        [uid] => 2
        [score] => 4
        [endgame] => 1
    )

[2] => Array
    (
        [uid] => 4
        [score] => 4
        [endgame] => 70
    )

[3] => Array
    (
        [uid] => 3
        [score] => 4
        [endgame] => 100
    )

)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在PHP中使用If对数组进行排序

来自分类Dev

是否可以使用合并排序(C#)根据多个条件对数组进行排序?

来自分类Dev

如何使用PHP对数组进行排序

来自分类Dev

Ruby根据多个条件对数字数组进行排序

来自分类Dev

Javascript-按多个条件对数组进行排序

来自分类Dev

在 Ruby 中使用冒泡排序对数组进行排序

来自分类Dev

需要帮助在PHP中使用时间戳对数组进行排序

来自分类Dev

如何在PHP中使用特殊字符或数字对数组进行排序?

来自分类Dev

如何在PHP中使用逗号分隔的字符串对数组进行排序?

来自分类Dev

使用元素内部的多个键对数组元素进行排序-PHP

来自分类Dev

在Swift Ascending中使用空项目对数组进行排序

来自分类Dev

在Java中使用max-heap对数组进行排序

来自分类Dev

在IOS中使用NSSortDescriptor对数组(NSString + Number)进行排序?

来自分类Dev

在Swift中使用AnyObjects对数组进行排序

来自分类Dev

使用多个键对数组对象进行排序:Javascript

来自分类Dev

用条件对数组进行排序

来自分类Dev

对数组进行两次排序或使用php对数组进行微调

来自分类Dev

基于多个值对数组进行排序

来自分类Dev

使用php按键对数组值进行排序

来自分类Dev

如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

来自分类Dev

使用指定的键值对数组进行排序PHP

来自分类Dev

如何使用PHP以自然顺序对数组进行排序

来自分类Dev

如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

来自分类Dev

使用PHP的usort方法对数组进行排序

来自分类Dev

如何使用PHP按键值对数组数据进行排序?

来自分类Dev

无法使用 PHP 根据键值对数组进行排序

来自分类Dev

使用重音对数组进行排序 - PHP(法语)

来自分类Dev

在Perl中使用逗号或点对字符串进行排序以对数组进行排序

来自分类Dev

在PHP中使用array_map对数组进行Ltrim

Related 相关文章

  1. 1

    如何在PHP中使用If对数组进行排序

  2. 2

    是否可以使用合并排序(C#)根据多个条件对数组进行排序?

  3. 3

    如何使用PHP对数组进行排序

  4. 4

    Ruby根据多个条件对数字数组进行排序

  5. 5

    Javascript-按多个条件对数组进行排序

  6. 6

    在 Ruby 中使用冒泡排序对数组进行排序

  7. 7

    需要帮助在PHP中使用时间戳对数组进行排序

  8. 8

    如何在PHP中使用特殊字符或数字对数组进行排序?

  9. 9

    如何在PHP中使用逗号分隔的字符串对数组进行排序?

  10. 10

    使用元素内部的多个键对数组元素进行排序-PHP

  11. 11

    在Swift Ascending中使用空项目对数组进行排序

  12. 12

    在Java中使用max-heap对数组进行排序

  13. 13

    在IOS中使用NSSortDescriptor对数组(NSString + Number)进行排序?

  14. 14

    在Swift中使用AnyObjects对数组进行排序

  15. 15

    使用多个键对数组对象进行排序:Javascript

  16. 16

    用条件对数组进行排序

  17. 17

    对数组进行两次排序或使用php对数组进行微调

  18. 18

    基于多个值对数组进行排序

  19. 19

    使用php按键对数组值进行排序

  20. 20

    如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

  21. 21

    使用指定的键值对数组进行排序PHP

  22. 22

    如何使用PHP以自然顺序对数组进行排序

  23. 23

    如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

  24. 24

    使用PHP的usort方法对数组进行排序

  25. 25

    如何使用PHP按键值对数组数据进行排序?

  26. 26

    无法使用 PHP 根据键值对数组进行排序

  27. 27

    使用重音对数组进行排序 - PHP(法语)

  28. 28

    在Perl中使用逗号或点对字符串进行排序以对数组进行排序

  29. 29

    在PHP中使用array_map对数组进行Ltrim

热门标签

归档