php - 按键对数组进行排序,以按键匹配另一个数组的顺序

Joe*_*Joe 11 php arrays sorting

我有两个数组,两个都有相同的键(不同的值),但是数组#2的顺序不同.我希望能够使用第二个数组,因此它与第一个数组的顺序相同.

有没有可以快速做到这一点的功能?

Fan*_*nis 14

我无法想到任何问题,但如果两个数组的键相同,那么为什么不绕过第一个键并使用其键顺序使用第二个值创建一个新数组一?

$arr1 = array(
    'a' => '42', 
    'b' => '551',
    'c' => '512',
    'd' => 'gge',
) ;


$arr2 = array(
    'd' => 'ordered',
    'b' => 'is',
    'c' => 'now',
    'a' => 'this', 
) ;

$arr2ordered = array() ;

foreach (array_keys($arr1) as $key) {
    $arr2ordered[$key] = $arr2[$key] ;
}
Run Code Online (Sandbox Code Playgroud)


len*_*ahy 5

您可以使用 array_replace

$ arr1 = [
    'x'=>'42', 
    'y'=>'551',
    'a'=>'512',
    'b'=>'gge',
];


$ arr2 = [
    'a'=>'ordered',
    'x'=>'this',
    'y'=>'是',
    'b'=>'现在',
];

$ arr2 = array_replace($ arr1,$ arr2);

$arr2 就是现在

[
    'x'=>这个,
    'y'=>是,
    'a'=>已排序,
    'b'=>现在,

]