在php中用另一个数组值替换一个数组键

在php中用另一个数组值替换一个数组键,php,arrays,Php,Arrays,我想将表单字段映射到数据库字段 我有两个数组 一个数组是数据,包含表单字段id作为键,表单字段值作为值 $data = array("inputEmail"=>"someone@somewhere.com","inputName"=>"someone"... etc 我还有一个数组,打算用作映射。此数组的键与表单字段相同,值是数据库字段名 $map = array("inputEmail"=>"email", "inputName"=>"name"... etc 我要

我想将表单字段映射到数据库字段

我有两个数组

一个数组是数据,包含表单字段id作为键,表单字段值作为值

$data = array("inputEmail"=>"someone@somewhere.com","inputName"=>"someone"... etc
我还有一个数组,打算用作映射。此数组的键与表单字段相同,值是数据库字段名

$map = array("inputEmail"=>"email", "inputName"=>"name"... etc
我要做的是迭代数据数组,在数据键与映射键匹配的地方,为数据数组分配一个新键,它是映射数组的值

$newArray = array("email"=>"someone@somewhere.com", "name"=>"someone"...etc

我的问题是怎么做?我尝试了很多不同的方法,现在我完全沉浸在其中。

这是一个foreach循环,非常好

foreach( $data as $origKey => $value ){
  // New key that we will insert into $newArray with
  $newKey = $map[$origKey];
  $newArray[$newKey] = $value;
}
更精简的方法(消除用于澄清的变量)


如果要将一个数组的键替换为另一个数组的值,则解决方案是


为什么不在整个应用程序中使用相同的名称呢?;)输入字段名称对于表单验证的工作非常重要。但我知道你的意思。我认为这比更改整个应用程序的输入字段名和验证脚本要简单。如果我能给出一个建议:尽可能在整个应用程序中使用相同的名称。你会从很多很多头痛中解脱出来。此外,它还适用于自动代码生成等…
array\u combine
在本例中不符合用户的要求。@SamLanning根据标题
在php中将一个数组键替换为另一个数组值
上述答案是正确的,因此最好不要对其进行负评级。因为它可以帮助那些想用另一个数组的值替换一个数组的键的人。array_combine()希望两个数组的长度相等。我们不能假设这里的情况就是这样。这是一些解决方案。最简单的。应该被拒绝的。非常感谢。
foreach( $data as $origKey => $value ){
  $newArray[$map[$origKey]] = $value;
}
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>
Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)