给定数据阵列......
$data_array = array (
"old_name_of_item" => "Item One!"
);
...并重命名数组......
$rename_array = array (
"old_name_of_item" => "new_name_of_item"
);
...我想生成这样的输出:
Array
(
[new_name_of_item] => Item One!
)
我编写了以下函数,虽然它工作正常但我觉得我缺少PHP的一些功能。
function rename_keys($array, $rename_array) {
foreach( $array as $original_key => $value) {
foreach( $rename_array as $key => $replace ) {
if ($original_key == $key) {
$array[$replace] = $value;
unset($array[$original_key]);
}
}
}
return $array;
}
PHP是否提供内置函数来帮助解决这个常见问题?谢谢!
答案 0 :(得分:1)
你只需要完成一次数组:
function rename_keys($array, $rename_array) {
foreach ( $rename_array as $original_key => $value ) {
if (isset($array[$original_key])) {
$array[$rename_array[$original_key]] = $array[$original_key];
unset($array[$original_key]);
}
}
}
当然,这假定两个数组都已正确填充(替换键的唯一值)。
编辑:仅在$rename_array
中存在相应元素时才替换。
编辑2:仅通过$rename_array
答案 1 :(得分:0)
今天第二次。这个更容易:
$data_array = array_combine(
str_replace(array_keys($rename_array), $rename_array, array_keys($data_array)), $data_array);