5

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

我有两个数组..

一个数组是数据,包含表单字段 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

我的问题是如何?我尝试了很多不同的方法,现在我完全迷失了。

4

2 回答 2

11

使用 foreach 循环可以很好地做到这一点

foreach( $data as $origKey => $value ){
  // New key that we will insert into $newArray with
  $newKey = $map[$origKey];
  $newArray[$newKey] = $value;
}

更简洁的方法(消除用于澄清的变量)

foreach( $data as $origKey => $value ){
  $newArray[$map[$origKey]] = $value;
}
于 2013-03-31T22:59:06.687 回答
10

如果你想用另一个数组的值替换一个数组的键,解决方案是array_combine

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

print_r 输出

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)
于 2014-06-26T15:21:15.953 回答