php - 如何按数组定义的特定顺序对大量项目进行排序?

标签 php algorithm sorting

我需要实现一些特定的排序算法。我有两个数组:

$items = array(
  array("id" => "…", "type" => "alpha"),
  array("id" => "…", "type" => "beta"),
  array("id" => "…", "type" => "company"),
  array("id" => "…", "type" => "marketing"),
  array("id" => "…", "type" => "beta"),
  array("id" => "…", "type" => "company"),
  array("id" => "…", "type" => "alpha"),
  array("id" => "…", "type" => "alpha"),
  array("id" => "…", "type" => "company"),
  array("id" => "…", "type" => "marketing"),
  […]
);

$order = array("company", "marketing", "alpha", "beta" );

正如您可能想象的那样,我需要根据 $order 中指定的顺序对 $items 进行排序。

最佳答案

运行 $items 并将所有内容索引到使用“type”作为键的字典中。然后运行 ​​$order 并查找对应于该“类型”的项目列表并将它们附加到排序列表中。在 O(n+k) 中运行,k 是 |order|

关于php - 如何按数组定义的特定顺序对大量项目进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6517804/

相关文章:

php - 如何将 Drools 与 PHP 应用程序一起使用?

algorithm - 在 Mod 不是素数的情况下计算逆 Mod

c - 哈希表 - 使用 qsort 排序结构

java - 根据出现次数升序排列数组

javascript - 我需要明智地过滤数据 id 吗?

php - Laravel 8 - 未登录时如何重定向到登录页面

php - 在 PHP 中向 MySQL 查询添加条件时遇到问题

java - HTML 页面比较 - 编辑距离

java - 快速生成随机列元素的方法

java - "Đ"使用 Java 对越南语文本进行排序时排序不正确