将数组键替换为给定的相应键

我有一个如下数组

$old = array(
       'a' => 'blah',
       'b' => 'key',
       'c' => 'amazing',
       'd' => array(
                0 => 'want to replace',
                1 => 'yes I want to'
              )
       );

我有另一个数组,其中有密钥可以替换为密钥信息。

$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');

我需要将数组的所有键替换为数组中的相应值。$old$keyReplaceInfo

输出应如下所示

$old = array(
       'newA' => 'blah',
       'newB' => 'key',
       'newC' => 'amazing',
       'newD' => array(
                0 => 'want to replace',
                1 => 'yes I want to'
              )
       );

我必须手动完成,如下所示。我期待更好的选择。任何人都可以提出更好的方法来实现这一目标吗?

$new = array();
foreach ($old as $key => $value)
{
     $new[$keyReplaceInfoz[$key]] = $value;
}

我知道这可以更简单。


答案 1
array_combine(array_merge($old, $keyReplaceInfoz), $old)

我认为这看起来比你提出的更容易。


答案 2
array_combine(
    ['newKey1', 'newKey2', 'newKey3'],
    array_values(['oldKey1' => 1, 'oldKey2' => 2, 'oldKey3' => 3])
);

只要您具有相同数量的值和相同的顺序,这应该可以解决问题。