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

时间:2013-03-31 22:49:26

标签: php arrays

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

我有两个数组..

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

我的问题是怎么样?我已经尝试了很多不同的方式,现在我完全迷失了。

2 个答案:

答案 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
)