我有两个数组:
array (
'AK_AGE_ASS_VISIBLE' => '1',
'AK_AGE_ASS_COMP' => '0',
.....
)
我想将密钥更改为从另一个数组中获取的另一个值:
array(
'AK_AGE_ASS_VISIBLE' => 'AGENT_ASSOCIATED',
'AK_AGE_ASS_COMP' => 'AGENT_ASSOCIATED_O',
....
)
结束数组应生成此数组:
array(
'AGENT_ASSOCIATED' => '1',
'AGENT_ASSOCIATED_O' => '0',
...
)
做这些事情的正确方法是什么?请注意,arrayys将没有相同数量的条目,并且不保证第一个阵列在另一个阵列中具有相应的密钥。
非常感谢
答案 0 :(得分:4)
试试这个:
$values = array(
'AK_AGE_ASS_VISIBLE' => '1',
'AK_AGE_ASS_COMP' => '0',
// …
);
$keymap = array(
'AK_AGE_ASS_VISIBLE' => 'AGENT_ASSOCIATED',
'AK_AGE_ASS_COMP' => 'AGENT_ASSOCIATED_O',
// …
);
$output = array();
foreach ($values as $key => $val) {
$output[$keymap[$key]] = $val;
}
答案 1 :(得分:2)
使用内置array_combine()
? http://www.php.net/manual/en/function.array-combine.php
您可能需要使用array_intersect_key()
来过滤那些数组中不存在的密钥。 http://www.php.net/manual/en/function.array-intersect-key.php
这是一个神奇的单行:
$output = array_combine(
array_intersect_key($array_with_keys, $array_with_values),
array_intersect_key($array_with_values, $array_with_keys));