【发布时间】:2021-09-10 07:55:23
【问题描述】:
我希望能够按特定键顺序对数组进行排序。
假设如下数组:
$titles = array(
'United States' => 'Dibbuk Box',
'Australia' => 'The Possession',
'UK' => 'The Possession',
'getTitle' => 'The Possession',
);
首选项数组(将确定键的排序顺序)将类似于:
$preference = array(
'UK',
'USA',
'World-wide, English title',
'United Kingdom',
'United Kingdom, English title',
'United States',
'United States, English title',
'World-wide',
'Australia',
'getTitle',
);
所以在排序之后,我希望第一个数组变成这样:
$titles = array(
'UK' => The Possession',
'United States' => 'Dibbuk Box',
'Australia' => 'The Possession',
'getTitle' => 'The Possession',
)
所以我的印象是下面的代码可以工作,但它没有......
array_multisort($preference, SORT_STRING, $titles);
我做错了什么?
实际上,我想要实现的是根据顺序或偏好检索电影标题。所以我想获得UK 的称号。如果不可用,我想获得USA 标题。如果那不可用,我想采取World-wide, English title等...
我知道我可以使用嵌套的 if/else 来做到这一点。我只是想到了排序数组解决方案,因为它会更加优雅和简短。所以,我先按优先顺序对数组进行排序,然后取第一个值。
如果有人有更好的解决方案,请随时详细说明。 TIA
【问题讨论】:
标签: php sorting array-multisort