关于php:如何用第二个数组中的其他单词替换关联数组键?

How do I replace assocative array keys with other words from second array?

我正试图用一个词替换一个数组键(=单个字母)。我有一个关联数组和一个带有替换词的$mapkeyarray

1
2
3
4
5
6
7
8
9
10
11
12
$inputArray = ['P' => 72,'T' => 0,'U' => 1,'E' => 0];

function cb_replaceWords($a) {
    $mapKeyArray = array('P' => 'Pink', 'T' => 'Top', 'U' => 'Union', 'E' => 'EX');
    foreach($a as $key) {
//        $a[$key] = $mapKeyArray[$key];
        $a[$key];
    }
    return $a;
}

$outputArray = array_map("cb_replaceWords", $inputArray);


将函数修改为:

1
2
3
4
5
6
7
8
9
10
11
function cb_replaceWords($a) {
    $result = [];
    $mapKeyArray = array('P' => 'Pink', 'T' => 'Top', 'U' => 'Union', 'E' => 'EX');
    foreach($a as $key => $value) {
        $result[$mapKeyArray[$key]] = $value;
    }
    return $result;    
}

// and there's no need to use array_map
$outputArray = cb_replaceWords($inputArray);

如果您的数组具有相同的键顺序,您可以用array_combine替换所有这些键:

1
$outputArray = array_combine($mapKeyArray, $inputArray);