使用用户定义的顺序重新定义阵列

时间:2016-10-04 13:36:05

标签: php arrays sorting

我想在php中使用特定的定义列表重新排序。

例如我有这个数组:

['red', 'yellow', 'green', 'black', 'orange', 'white']

输入数组的顺序在某些情况下可能会有所不同,但在每种情况下我都需要一个对数组条目进行混洗的函数(当然只有在存在时,输入数组可能只有两个)条目)遵循这个预定的顺序:

['white', 'black', 'red', 'orange', 'yellow, 'green']
坦率地说,我不知道怎么办,除非你使用“搜索那个项目,如果有第一个位置”......但我认为这是一个废话代码:)

1 个答案:

答案 0 :(得分:0)

我认为没有内置的方法可以执行此操作,但您可以使用usort根据您的首选顺序对其进行排序:

usort($array, function($a, $b) {
    $order = ['white', 'black', 'red', 'orange', 'yellow', 'green'];
    $k1 = array_search($a, $order);
    $k2 = array_search($b, $order);
    return $k1 < $k2 ? -1 : +1;
});
相关问题