PHP是否具有按另一个数组(B)定义的顺序对项目数组(A)进行排序的功能?例如。 B中排在最前面的项目决定对A进行排序时应排在最先的项目。

$order_to_sort_by = array("Gold", "Silver", "Bronze");
$items_to_sort = array("Bronze", "Silver", "Bronze", "Gold", "Bronze", "Silver");

some_sort_function($items_to_sort, $order_to_sort_by);


结果:

Gold
Silver
Silver
Bronze
Bronze
Bronze


编辑:建议的重复似乎使用另一个数组的键来确定应使用数组中的哪些键进行排序。尚不清楚,但我不认为这是重复的。

最佳答案

你可以尝试这样的事情

$order_to_sort_by = array("Gold", "Silver", "Bronze");
$items_to_sort = array("Bronze", "Silver", "Bronze", "Gold", "Bronze", "Silver");

$order_to_sort_by_reversed = array_flip($order_to_sort_by);
$sortByArray = function($a, $b) use ($order_to_sort_by_reversed)
{
    return $order_to_sort_by_reversed[$a] - $order_to_sort_by_reversed[$b];
};
usort($items_to_sort, $sortByArray);

var_dump($items_to_sort);

关于php - 按其他数组定义的顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35272282/

10-12 06:29