Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将关联数组添加到另一个关联数组_Php_Arrays - Fatal编程技术网

在PHP中将关联数组添加到另一个关联数组

在PHP中将关联数组添加到另一个关联数组,php,arrays,Php,Arrays,我有两个独立的数组 数组1: Array ( [0] => Array ( [id] => 1 [name] => Product 1 [quantity] => 2 [unit_amount] => Array ( [currency_code] => GBP

我有两个独立的数组

数组1:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Product 1
            [quantity] => 2
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 
                )

        )

    [1] => Array
        (
            [id] => 2
            [name] => Product 2
            [quantity] => 4
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 
                )

        )

    [2] => Array
        (
            [id] => 3
            [name] => Product 3
            [quantity] => 6
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 
                )

        )

)
Array
(
    [0] => 3
    [1] => 4
    [2] => 5
)
数组2:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Product 1
            [quantity] => 2
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 
                )

        )

    [1] => Array
        (
            [id] => 2
            [name] => Product 2
            [quantity] => 4
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 
                )

        )

    [2] => Array
        (
            [id] => 3
            [name] => Product 3
            [quantity] => 6
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 
                )

        )

)
Array
(
    [0] => 3
    [1] => 4
    [2] => 5
)
我不知道如何使数组1中的每个数组中的
[value]
数组2接收连续的值。我需要的是:

阵列1

[unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 3
                )
[unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 4
                )
[unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5
                )
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Product 1
            [quantity] => 2
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5 // The last value from Array 2 received.
                )

        )

    [1] => Array
        (
            [id] => 2
            [name] => Product 2
            [quantity] => 4
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5 // The last value from Array 2 received.
                )

        )

    [2] => Array
        (
            [id] => 3
            [name] => Product 3
            [quantity] => 6
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5 // The last value from Array 2 received.
                )

        )

)
这就是创建数组1的方法。它包含在
$products\u details[]中

<?php
foreach ($basket as $product) {
    $product_detail['id'] = $product['product_id'];
    $product_detail['name'] = $product['product_name'];
    $product_detail['quantity'] = $product['product_quantity'];
    $product_detail['unit_amount']['currency_code'] = $currency_code;
    $product_detail['unit_amount']['value'] = '';

    $products_details[] = $product_detail;
?>
但它只添加数组2中的最后一个值:

[unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 3
                )
[unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 4
                )
[unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5
                )
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Product 1
            [quantity] => 2
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5 // The last value from Array 2 received.
                )

        )

    [1] => Array
        (
            [id] => 2
            [name] => Product 2
            [quantity] => 4
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5 // The last value from Array 2 received.
                )

        )

    [2] => Array
        (
            [id] => 3
            [name] => Product 3
            [quantity] => 6
            [unit_amount] => Array
                (
                    [currency_code] => GBP
                    [value] => 5 // The last value from Array 2 received.
                )

        )

)

任何帮助都将不胜感激。

假设所有阵列都可用。我假设
Array 2:
$basket\u prices
数组

foreach ($basket as $i => $product) {
// add an index     ^^
    $product_detail['id'] = $product['product_id'];
    $product_detail['name'] = $product['product_name'];
    $product_detail['quantity'] = $product['product_quantity'];
    $product_detail['unit_amount']['currency_code'] = $currency_code;
    $product_detail['unit_amount']['value'] = $basket_prices[$i];
// use the index to address the other array   ^^^^^^^^^^^^^^^^^^^

    $products_details[] = $product_detail;

是的,
Array 2
$basket\u prices
并且所有阵列都可用。我已经试过你的代码了。它给了我两个错误:
未定义的偏移量:3
未定义的偏移量:4
,这似乎与
$basket\u prices[$i]
有关。这意味着你的
篮子
数组比你的
篮子
数组大!在现实生活中,你会怎么做?实际上,数组
篮子
也包含这些值。(出于某种原因,我通过两条不同的路径传递相同的值。)因此,我将
$basket\u prices[$I]
改为
$product['product\u prices'][$I]
,它现在可以工作了。我不需要另一个数组。我想我把问题弄得比实际情况更复杂了。非常感谢你的帮助。