我想将表单字段映射到数据库字段。
我有两个数组..
一个数组是数据,并包含表单字段ID作为键,表单字段值作为值。
$data = array("inputEmail"=>"someone@somewhere.com","inputName"=>"someone"... etc
我还有一个数组,我打算用它作为地图。这个数组的键与表单字段相同,值是数据库字段名。
$map = array("inputEmail"=>"email", "inputName"=>"name"... etc
我想做的是迭代数据数组,数据键与map键匹配,为数据数组指定一个新键,即地图数组的值。
$newArray = array("email"=>"someone@somewhere.com", "name"=>"someone"...etc
我的问题是怎么样?我已经尝试了很多不同的方式,现在我完全迷失了。
答案 0 :(得分:8)
这与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;
}
答案 1 :(得分:7)
如果要将一个数组的键替换为另一个数组的值,则解决方案为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
)