我有一个数组,其值如下:-
$Array1 = array("myfirst_value", "mysecond_value", "mythird_value"}
现在对于我的另一个数组,列表随机出现如下:-
$Array2 = array
(
[4] => myfirst_value
[8] => myforth_value
[21] => mysecond_value
[7] => myfifth_value
[17] => mysixth_value
[20] => mythird_value
[16] => myseventh_value
)
我希望实现的是 $Array2 根据 $Array1 中值的顺序进行排序。
所以,我希望 $Array2 得到排序并变成:-
$Array2 = array
(
[4] => myfirst_value
[21] => mysecond_value
[20] => mythird_value
[7] => myfifth_value
[8] => myforth_value
[16] => myseventh_value
[17] => mysixth_value
)
注意,Array1 的值首先排序,其余的只是输出,没有任何顺序。
谢谢
最佳答案
如果我没理解错的话
$Array1 = array("myfirst_value", "mysecond_value", "mythird_value");
$Array2 = array
(
4 => myfirst_value,
8 => myforth_value,
21 => mysecond_value,
7 => myfifth_value,
17 => mysixth_value,
20 => mythird_value,
16 => myseventh_value
);
// Remove elements of the 1st array from the 2nd
function f ($v) { global $Array1; return in_array($v, $Array1);}
$a1 = array_filter($Array2, 'f');
// Take the rest elements
$a2 = array_diff_key($Array2, $a1);
// Combine back
print_r($a1+$a2);
结果
Array
(
[4] => myfirst_value
[21] => mysecond_value
[20] => mythird_value
[8] => myforth_value
[7] => myfifth_value
[17] => mysixth_value
[16] => myseventh_value
)
关于php - 在 PHP 中根据另一个数组的值对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30786609/