溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

usort — 使用用戶自定義的比較函數(shù)對(duì)數(shù)組中的值進(jìn)行排序

發(fā)布時(shí)間:2020-07-07 22:22:11 來源:網(wǎng)絡(luò) 閱讀:401 作者:xtceetg 欄目:web開發(fā)
test

工作中碰到一個(gè)問題,把三個(gè)日志表里的數(shù)據(jù)取出,進(jìn)行排序。


第一步很簡(jiǎn)單,直接用mysql進(jìn)行排序。


那么問題來了,當(dāng)把三個(gè)表的數(shù)據(jù)取出來之后,合并數(shù)組在一起之后。時(shí)間會(huì)是無序的。因?yàn)閙ysql只是對(duì)三張表進(jìn)行了排序。


解決辦法


用PHP的usort這個(gè)函數(shù),可以自定義排序
下面上代碼

usort($order, function ($a, $b) {
    if ($a['pay_time'] == $b['pay_time']) {
        return 0;
    }
    return ($a['pay_time'] < $b['pay_time']) ? 1 : -1;
});

第一個(gè)參數(shù)是要排序的數(shù)組,第二個(gè)參數(shù)是回調(diào)函數(shù)。在回調(diào)函數(shù)里面,可以對(duì)時(shí)間進(jìn)行比較,這個(gè)時(shí)間你根據(jù)自己的需要進(jìn)行正序或者是倒序的排序了。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI