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

时间:2018-01-12 20:13:49

标签: php arrays

我正在尝试用一个单词替换一个数组键(=单个字母)。我有一个关联数组和一个带有替换单词的$ 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);

1 个答案:

答案 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);