当前位置: 首页 > 知识库问答 >
问题:

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

狄兴邦
2023-03-14

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

我有两个数组。。

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

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

共有2个答案

班凌
2023-03-14

如果你想用另一个数组的值替换一个数组的键,解决方案是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
)
柳轶
2023-03-14

这很好,有一个前循环

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;
}
 类似资料:
  • 问题内容: 我有一个看起来像这样的数组。这是一个二维数组。 我想使用此信息来创建一个新的三维数组,如下所示。 请对此有任何帮助。我陷入困境,需要弄清楚如何使用此原始数组创建新数组。因此,基本上,我将每台计算机上的所有作业分组在一起,而这些作业的密钥取决于它们在原始阵列中的状态。因此,如果原始阵列上有一个键为2的作业,而该机上没有其他作业具有更高的键,则它将变成该作业的键0,并使用该机器名创建一个新

  • 我有一个像这样的数组。这是一个二维数组。 我想使用这些信息创建一个新的三维数组,如下所示。 请在这方面提供任何帮助将不胜感激。我遇到了一些问题,需要弄清楚如何使用这个原始数组创建新数组。所以基本上,我将来自每台机器的所有作业分组在一起,这些作业的键取决于它们在原始数组中的位置。因此,如果原始数组有一个键为2的作业,而该机器上没有其他作业有更高的键,那么它将成为该作业的键0,并创建一个具有该机器名的

  • 我有两个多维数组,我想通过使用其中一个数组的值和另一个数组的键来组合它们。数组如下: 阵列1: 阵列 2: 我想生成的结果数组如下: 有没有一个PHP函数可以用来完成这个任务?

  • 我有两个数组: 和。 它们中的第一个是一个键,我想从中获取与该键对应的元素。 在伪代码中: 我知道使用<code>。map()我可以遍历<code>SpecificArray

  • 问题内容: 最近有人要求我为一份工作编写3个测试程序。它们将仅使用核心Java API和我选择的任何测试框架来编写。应在适当的地方实施单元测试。 尽管我根本没有收到任何反馈,但我想他们不喜欢我的解决方案(否则我会收到他们的来信),所以我决定在这里展示我的程序,并询问这种实现是否可以认为是好的,并且,如果没有,那为什么呢? 为避免混淆,我现在只问第一个。 实现一个函数,以在另一个更大的数组中查找一个

  • 问题内容: 我在PHP中有两个数组,如下所示: 人: 通缉犯: 如何检查是否 所有 的的 人们 元素是在 通缉犯 阵列? 在此示例中,它应该返回,因为在 通缉犯中 。 问题答案: 您可以使用。