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