Php 多维数组中多个键的动态重命名

Php 多维数组中多个键的动态重命名,php,arrays,Php,Arrays,我正在编写一个将数组导入另一个数组的代码 将持续存在的阵列车辆: array ( 0 => array ( 'Brand' => 'Volvo', 'Stock Value' => 100, 'Models' => 96, ), 1 => array ( 'Brand' => 'BMW', 'Stock Value' => 60, 'Models' => 59, ),

我正在编写一个将数组导入另一个数组的代码

将持续存在的阵列车辆:

array (
  0 => 
  array (
    'Brand' => 'Volvo',
    'Stock Value' => 100,
    'Models' => 96,
  ),
  1 => 
  array (
    'Brand' => 'BMW',
    'Stock Value' => 60,
    'Models' => 59,
  ),
  2 => 
  array (
    'Brand' => 'Toyota',
    'Stock Value' => 110,
    'Models' => 100,
  ),
)
要导入的数组emobile:

array (
  0 => 
  array (
    'Maker' => 'Tesla',
    'Price' => 100,
    'Factories' => 96,
    'Employees' => 10,
  ),
  1 => 
  array (
    'Maker' => 'Nikola',
    'Price' => 60,
    'Factories' => 59,
    'Employees' => 10,
  ),
  2 => 
  array (
    'Maker' => 'Thor',
    'Price' => 110,
    'Factories' => 100,
    'Employees' => 10,
  ),
)
Post Data$pst_数据键=目标结构,值=当前结构,-未分配:

array (
  'Brand' => 'Maker',
  'Stock_Value' => '---',
  'Models' => '---',
  'flag' => '---',
)
我的密码。在其当前阶段,我可以让它恰好显示导入数组中的值,例如制造商的名称,或者我选择两个股票值作为第二个值,其中有结构,但没有值

foreach ($kar as $xk => $vx) {
    if(!in_array($vx, $pst_data)){
        foreach ($emobile as &$xkone) {
            unset($xkone[$vx]);
        }
    }
    else {
        foreach ($pst_data as $pstd => $pstd_val) {
            foreach ($emobile as &$xkone) {
              $xkone[$pstd] = $xkone[$pstd_val];
              unset($xkone[$pstd_val]);
            }

        }
    }
}
我的目标是:

Array
(
    [0] => Array
        (
            [Brand] => Volvo
            [Stock Value] => 100
            [Models] => 96
            [flag] => 1
        )

    [1] => Array
        (
            [Brand] => BMW
            [Stock Value] => 60
            [Models] => 59
            [flag] => 1
        )

    [2] => Array
        (
            [Brand] => Toyota
            [Stock Value] => 110
            [Models] => 100
            [flag] => 1
        )
    [3] => Array
        (
            [Brand] => Tesla
            [Stock Value] => 100
            [Models] => 
            [flag] => 
        )    
    [4] => Array
        (
            [Brand] => Nikola
            [Stock Value] => 60
            [Models] => 
            [flag] => 
        )
    [5] => Array
        (
            [Brand] => Thor
            [Stock Value] => 110
            [Models] => 
            [flag] => 
        )
)
所以我的目标是选择一个数组导入另一个数组。在表单中,我将导入数组中的键分配给现有数组,并将其提交以创建一个以键和已分配键为值的数组。如果指定的值(如Maker)存在,则该键将保留在导入的数组中。所有其他钥匙都将被取下。以下是密钥的重命名,例如从制造商到品牌,从价格到股票价值。然后用array_merge合并这两个数组

如何解决该问题以使用导入数组中的单个和多个值

编辑 使用$pst_数据的单个数据分配示例:

以及第一个新插入数组的示例结果:

[3] => Array
    (
        [Brand] => Tesla
        [Stock_Value] => 
        [Models] => 
        [flag] => 
    )
[3] => Array
    (
        [Brand] => 
        [Stock_Value] => 
        [Models] => 
        [flag] => 
    )
使用$pst_数据分配的多个数据示例:

以及第一个新插入数组的示例结果:

[3] => Array
    (
        [Brand] => Tesla
        [Stock_Value] => 
        [Models] => 
        [flag] => 
    )
[3] => Array
    (
        [Brand] => 
        [Stock_Value] => 
        [Models] => 
        [flag] => 
    )

切换循环。在外循环中,遍历数据。在内部循环中,遍历属性

为映射项使用新变量。它可以在循环结束时替换$xkone以修改现有阵列

foreach$emobile as和$xkone{ $car=[]; foreach$pst\u数据为$pstd=>$pstd\u val{ $car[$pstd]=$xkone[$pstd\u val]?空; } $xkone=$car; }
请始终以json字符串或var_导出的形式呈现项目的数组数据-这使志愿者更容易帮助您。当您使用var_dump或print_r时,志愿者需要手动重写您的数组,以便测试他们自己的建议。您的示例数据需要表示数据中所有预期的困难。如果在两个数组中有重复的品牌值,请设置示例数据以显示该值,然后显示确切的所需输出。在var_导出调用之前使用,以便读者无需水平滚动。然后您可以从问题中删除旧的打印数据。老实说,我还没有发现你的问题要求是明确的。请提供代表单个和多个值的数据。请显示一个在线演示。这会产生任何通知吗?您建议在else语句中插入代码,对吗?Jasny,问题似乎仍然存在。