php - 在 PHP 中根据另一个数组的值对数组进行排序

标签 php arrays sorting

我有一个数组,其值如下:-

$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/

相关文章:

c++ - 输入值到结构数组+打印出来

arrays - 有没有办法在 Bash 中将一个字符串数组拆分为多个其他数组?

jquery - Jquery中的多级数组

python - 如何从列表类别中对 pandas 数据框进行排序?

PHP-Mysql查询不必要地插入数据两次

php - 验证值有两种可能的类型

php - 按时间/日期对我的留言簿帖子进行排序 (php/mySQL)

algorithm - 将组排序到列表中的决策树

php - 如果数组元素满足条件,则将其作为第一个元素

PHP PDO bindParam 不适用于数组内容