Php 合并或联接两个多维数组,并将键/值复制到

Php 合并或联接两个多维数组,并将键/值复制到,php,arrays,multidimensional-array,merge,array-merge,Php,Arrays,Multidimensional Array,Merge,Array Merge,如何合并两个不同的多维数组,但将键和值从第一个数组复制到第二个数组 我是如何让它工作的;第一个数组设置输入字段,然后这些字段是可克隆的(使用jQuery进行克隆,就像这样:)。保存字段数据后,第二个数组就是结果输出。问题是,第二个数组缺少正确输出保存的数据所需的第一个数组中的特定键和值 在将键和值从第一个数组复制到第二个数组时,是否有方法加入或合并数组 我需要从中复制键/值的第一个数组如下所示: Array ( [group-1] => Array (

如何合并两个不同的多维数组,但将键和值从第一个数组复制到第二个数组

我是如何让它工作的;第一个数组设置输入字段,然后这些字段是可克隆的(使用jQuery进行克隆,就像这样:)。保存字段数据后,第二个数组就是结果输出。问题是,第二个数组缺少正确输出保存的数据所需的第一个数组中的特定键和值

在将键和值从第一个数组复制到第二个数组时,是否有方法加入或合并数组

我需要从中复制键/值的第一个数组如下所示:

Array
(
    [group-1] => Array
        (
            [fields] => Array
                (
                    [text-field-1] => Array
                        (
                            [name] => Text Field 1
                            [value] => Value 1
                            [comments] => true
                        )

                    [text-field-2] => Array
                        (
                            [name] => Text Field 2
                            [value] =>  Value 2
                            [comments] => false
                        )

                )

        )

)
Array
(
    [group-1] => Array
        (
            [fields] => Array
                (
                    [text-field-1] => New value here
                    [text-field-2] => New value also
                )

        )

    [group-2] => Array
        (
            [fields] => Array
                (
                    [text-field-1] => Cloned group with new value
                    [text-field-2] => Cloned group with new value also
                )

        )

)
第二个数组如下所示:

Array
(
    [group-1] => Array
        (
            [fields] => Array
                (
                    [text-field-1] => Array
                        (
                            [name] => Text Field 1
                            [value] => Value 1
                            [comments] => true
                        )

                    [text-field-2] => Array
                        (
                            [name] => Text Field 2
                            [value] =>  Value 2
                            [comments] => false
                        )

                )

        )

)
Array
(
    [group-1] => Array
        (
            [fields] => Array
                (
                    [text-field-1] => New value here
                    [text-field-2] => New value also
                )

        )

    [group-2] => Array
        (
            [fields] => Array
                (
                    [text-field-1] => Cloned group with new value
                    [text-field-2] => Cloned group with new value also
                )

        )

)
因此,如果这两个阵列能够合并,则需要合并阵列的输出如下所示:

我尝试过只使用
array\u merge($array2,$array1)
,但是结果是这样的:它们实际上是合并的,但是键和值没有被复制

编辑:应该在这里描述一个用例

因此,如何工作,初始的,未保存的输出是由第一个数组创建的组中的两个文本输入。该组是可克隆的,使用jQuery克隆(这里的示例:)。因此,如果添加/克隆多个组中的一个,然后保存,则保存的结果数据将是第二个数组。第二个数组中的字符串是实际保存的输入值。这些将进入第一个数组中的[value]

但是,字段的输出仍然基于第一个数组,这意味着它无法正确输出克隆的组,因为它们不是数组,并且没有与第一个数组相同的键和值


如果有人能就此提供一些见解,我们将不胜感激。

如果我误解了这个问题,很抱歉,合并是一项要求吗?如果您可以访问这两个数组,则可以迭代第二个数组,映射原始键值,并在执行时用新值覆盖

您的阵列:

$arr1 = Array
(
    'group-1' => Array
        (
            'fields' => Array
                (
                    'text-field-1' => Array
                        (
                            'name' => 'Text Field 1',
                            'value' => 'Value 1',
                            'comments' => 'true'
                        ),

                    'text-field-2' => Array
                        (
                            'name' => 'Text Field 2',
                            'value' =>  'Value 2',
                            'comments' => 'false'
                        )

                )

        )

);


$arr2 = Array
(
    'group-1' => Array
        (
            'fields' => Array
                (
                    'text-field-1' => 'New value here',
                    'text-field-2' => 'New value also'
                )

        ),

    'group-2' => Array
        (
            'fields' => Array
                (
                    'text-field-1' => 'Cloned group with new value',
                    'text-field-2' => 'Cloned group with new value also'
                )

        )

);
秘方:

foreach($arr2 as $k=>$v){
    // Get the new values for this iteration
    $val1 = $arr2[$k]['fields']['text-field-1'];
    $val2 = $arr2[$k]['fields']['text-field-2'];
    // Duplicate the original array
    $arr2[$k]['fields'] = $arr1['group-1']['fields']; 
    // Insert the new values
    $arr2[$k]['fields']['text-field-1']['value'] = $val1;
    $arr2[$k]['fields']['text-field-2']['value'] = $val2;
}


echo '<pre>';
print_r($arr2);
echo '</pre>';

exit();

第二个数组中字符串的含义是什么?它们是否对应于第一个数组中的某个特定键?这些字符串是输入的保存值。我应该说的。很抱歉。