如何使用PHP根据另一个数组值对数组键进行排序

时间:2017-04-19 19:15:15

标签: php arrays sorting key

我在php数组中有问题。似乎不是很难 对阵列有所了解。

我有两个阵列
    例如:
    第一个数组是:

        Array (     
[651] => 12     
[620] => 10     
[681] => 7      
[792] => 6      
[402] => 5) 

第一个数组按降序排序。

第二个阵列是:

    Array (     
[681] => Blue      
[620] => White     
[792] => Red      
[651] => Green        
[402] => Gray)

两个阵列都有类似的键。

现在我想要一个看起来像这样的数组

Array (       
[651] => Green        
[620] => White       
[681] => Blue      
[792] => Red      
[402] => Gray)  

这意味着第二个数组键应该根据第一个数组的值进行排序。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以使用array_multisort。但是你不应该事先对第一个数组进行排序。如果第一个数组单独排序,则应通过再次按键对其进行同步(使用ksort):

// Sync two arrays -- sort by keys.
ksort($array1);
ksort($array2);

// Sort second array accordingly to the first.
array_multisort($array1, SORT_DESC, $array2);

这是working demo

请注意,通过这种方法,两个数组最终都会被排序,但是你会松开键,即数组将被重新索引。