使用 PHP 按自定义顺序对数组进行排序

Sort array in custom order using PHP

我想按以下顺序对数组进行排序:

$sorted_array = ["diamond", "platinum", "gold", "silver", "bronze", "standard", "branding"];

原始数组的顺序可能不同,如下所示:

$data = ["platinum", "gold", "silver", "bronze", "standard", "branding", "diamond"];

但我一直想要上面的 $sorted_array 值。如果 $data 中不存在任何值,那么它将取代 other 的位置。例如:如果钻石不在数组中,那么第一个位置将是铂金。

我会使用以正确顺序包含所有值的数组,然后过滤掉不在 $data 数组中的元素:

$sortOrder = [ 'diamond', 'platinum', 'gold', 'silver', 'bronze', 'standard', 'branding' ];

$data = [ 'platinum', 'gold', 'silver', 'bronze', 'standard', 'branding', 'diamond' ];
$result = array_filter($sortOrder, fn($value) => in_array($value, $data));