簡體   English   中英

根據另一個數組的順序對一個數組排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM