【发布时间】:2018-03-19 00:20:24
【问题描述】:
我有一个带有值的(关联)数据数组$data,还有另一个关联数组$replacements。
我正在寻找一种使用$replacements 数组替换$data 中值的简短、简单和快速的方法。
详细的方式是这样的:
function replace_array_values(array $data, array $replacements) {
$result = [];
foreach ($data as $k => $value) {
if (array_key_exists($value, $replacements)) {
$value = $replacements[$value];
}
$result[$k] = $value;
}
return $result;
}
有没有本地方法可以做到这一点?
我知道array_map(),但也许有更快的方法,每个项目都不需要额外的函数调用?
示例:
$data = array(
'a' => 'A',
'b' => 'B',
'c' => 'C',
'd' => 'D',
);
$replacements = array(
'B' => '(B)',
'D' => '(D)',
);
$expected_result = array(
'a' => 'A',
'b' => '(B)',
'c' => 'C',
'd' => '(D)',
);
assert($expected_result === replace_array_values($data, $replacements));
【问题讨论】:
-
你能举一个
$data、$replacements和预期输出的例子吗?
标签: php