我正在尝试用一个单词替换一个数组键(=单个字母)。我有一个关联数组和一个带有替换单词的$ mapKeyArray
$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);
答案 0 :(得分:1)
将您的功能修改为:
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
:
$outputArray = array_combine($mapKeyArray, $inputArray);