在这里, 使用了PHP中的usort函数进行了数组的排序, 代码大致如下:
usort($arr, function ($a, $b){
// 这里添加了 order 字段, 默认为0, 将order...但是, 我记得我之前也测试过, 数组顺序没有变化啊, 我尝试将数组的长度缩小为4, 突然发现, 是我错了.
分析
既然确定了usort函数是不稳定的排序, 那么他到底是如何进行排序的呢?...是个宏? OK, 正好刚写了程序, 我再重新找一下 zend_hash_sort_ex 函数在哪里.
经过一番苦苦寻找, 终于在 「Zend/zend_hash.c」 文件下找到了最终的排序算法....其他的没看懂, 但是, 这里有一句我知道, 是排序的关键:
?...image-20200501225914955
好吧, 又去调 sort函数, 通过查看, 这个sort函数是本函数的第二个参数, 那在返回去看zend_hash_sort的宏定义, 嗯, 是 zend_sort