我需要实现一些特定的排序算法。我有两个数组:
$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/