用给定的相应键替换数组键

Mau*_*ora 9 php arrays multidimensional-array array-key

我有一个像下面的数组

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

我有另一个数组,有密钥替换密钥信息.

$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');
Run Code Online (Sandbox Code Playgroud)

我需要用数组$old中的相应值替换数组的所有键$keyReplaceInfo.

输出应该是这样的

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

我必须手动完成,如下所示.我期待更好的选择.有谁能建议更好的方法来实现这一目标?

$new = array();
foreach ($old as $key => $value)
{
     $new[$keyReplaceInfoz[$key]] = $value;
}
Run Code Online (Sandbox Code Playgroud)

我知道这可以更简单.

Sum*_*ner 18

array_combine(array_merge($old, $keyReplaceInfoz), $old)
Run Code Online (Sandbox Code Playgroud)

我认为这看起来比你提出的要容易.

  • `array_combine` 仅在键和值的顺序正确时才起作用,并且每个键都有一个替换。(我自己将其视为解决方案)。 (3认同)

Mag*_*usu 5

array_combine(
    ['newKey1', 'newKey2', 'newKey3'],
    array_values(['oldKey1' => 1, 'oldKey2' => 2, 'oldKey3' => 3])
);
Run Code Online (Sandbox Code Playgroud)

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