[英]Sort an array based on order of another array
我有兩個數組:
$arr_a = ['A', 'F', 'C', 'D', 'E', 'B'];
$arr_b = ['D', 'A', 'F'];
,並且我需要一個值為$ arr_b且由$ arr_a排序的數組,如下所示:
array(3) {[0]=>string(1) "A", [1]=>string(1) "F", [2]=>string(1) "D"}
最好的方法是什么?
PS。 $ arr_b中的所有條目都存在於$ arr_a中,並且$ arr_b中沒有重復的條目,並且resultin數組中的鍵確實無關緊要。
可能不是分類工作。 array_intersect()
將返回項目$arr_a
是在$arr_b
的順序,他們在$arr_a
:
$arr_b = array_intersect($arr_a, $arr_b);
如果您需要重新編制索引,則之后只需使用array_values()
。
我想這就是您想要的,但是您的問題不太清楚。
$result = array_filter($arr_a, function($item) use($arr_b){
return in_array($item, $arr_b);
});
導致
array(3) {
[0] = string(1) "A"
[1] = string(1) "F"
[3] = string(1) "D"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.