php - 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
。
解决方案
最后我找到了解决方案,它是:SPL EXT 中的优先级队列 https://www.php.net/manual/en/class.splpriorityqueue.php
您可以将您的比较方法传递给它,它会将其存储排序!
我将使用 usort 和优先级队列解决方案创建某种基准进行比较,以获得更准确的决策:)
tnx @PtrTron 提出建议
推荐阅读
- angular - 如何将 ngx-quill 富文本编辑器数据从数据库显示到页面以进行查看模式
- grammar - 是否有官方的 Concourse 管道语法?
- javascript - 使用 react-select 的键盘导航在 sweetalert2 (sweetalert2-react-content) 中不起作用
- intellij-idea - 无法连接到 Intellij 中的 h2 数据库
- c - C - mktime() 在不应该的地方返回 -1
- angular - 在我点击链接两次之前,我的新闻提要不会显示
- javascript - 怎样才能先setState再运行onSubmit函数
- python - Reportlab:如何为第一页设置模板
- php - 我是 WordPress 新手,但我似乎无法添加 php 代码?
- apache - 如何在与 PHP/Apache 网站相同的服务器上运行 Flask 应用程序?