首页 > 解决方案 > php中的排序数组

问题描述

在 c#、java 等许多语言中,我们已经对数组进行了排序!这意味着当我们向其中添加一些元素时,它会根据排序方法在正确的索引中添加新元素......使用这种算法插入并且元素太快了!

但是据我所知,在 php 中,我们可以使用 ksort、sort 或类似的东西对数组进行排序,而我没有在 php 中找到类似排序数组的东西,以便更好地管理我们希望始终排序的数组!

如果我弄清楚 ksort 是如何工作的,我很艰难,我可以自己编写排序数组,但我没有找到任何解决方案来按索引将项目添加到数组中......

有谁知道如何在 php 中实现排序数组?或者有谁知道如何在我想要的任何索引中添加元素?


更新 1

我在 php 中需要这样的东西:https ://www.tutorialsteacher.com/csharp/csharp-sortedlist

我有巨大的数组(大约 2m 行),我应该根据价格之类的东西对其进行排序!

现在我对其进行排序,ksort但我对性能产生了巨大影响


更新 2

我想为我的加密货币交易所创建交易匹配引擎,现在我使用 redis 作为我的数据输入,但是当我在 php 数组中用作我的数据输入时,性能提高了大约 250 倍。

(在 redis 中我可以添加大约 3.5k/s 的订单)

我测试了我的代码,发现它ksrot占用了我代码运行时间的大约 83%。现在我想使用排序列表来提高我的表现。现在我可以处理大约 930k/s 的订单(添加数组、排序数组、迭代数组顶部)ksort

标签: phparrayssortingsortedlist

解决方案


最后我找到了解决方案,它是:SPL EXT 中的优先级队列 https://www.php.net/manual/en/class.splpriorityqueue.php

您可以将您的比较方法传递给它,它会将其存储排序!

我将使用 usort 和优先级队列解决方案创建某种基准进行比较,以获得更准确的决策:)

tnx @PtrTron 提出建议


推荐阅读