doubi9531 2013-10-21 12:18
浏览 29
已采纳

PHP uasort - 按两个键排序[重复]

This question already has an answer here:

I have an array

$DATA = array(
array(
    "id" => "23",
    "rate" => "4.555"
),
array(
    "id" => "12",
    "rate" => "4.555"
),
array(
    "id" => "20",
    "rate" => "4.555"
),

array(
    "id" => "29",
    "rate" => 5.1025"
)   
);

Now i need to sort above array by key: rate (ascending) and id (ascending).

So:

    function mySort($a, $b) {

      return strcmp($a['rate'], $b['rate']); 

    } 

uasort($DATA,'mySort');

Now sort perfect but only by rate....

Adding new funcion:

function mysortID ($a,$b){ //AD
        return ($a['id'] > $b['id']) ? 1 : -1;  
    }

Let's try:

 uasort($DATA,'mySort');
 uasort($DATA,'mySortID');

But doesn't work.... how to that ?

</div>
  • 写回答

1条回答 默认 最新

  • douhezi2285 2013-10-21 12:21
    关注
    function mySort($a, $b)
    {
        // Check the rates
        $res = strcmp($a['rate'], $b['rate']);
    
        // If the rates are the same...
        if ($res === 0) {
            // Then compare by id
            $res = $a['id'] > $b['id'] ? 1 : -1;
        }
    
        return $res;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件