在PHP中将关联数组添加到另一个关联数组
我有两个独立的数组 数组1:在PHP中将关联数组添加到另一个关联数组,php,arrays,Php,Arrays,我有两个独立的数组 数组1: Array ( [0] => Array ( [id] => 1 [name] => Product 1 [quantity] => 2 [unit_amount] => Array ( [currency_code] => GBP
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]
,它现在可以工作了。我不需要另一个数组。我想我把问题弄得比实际情况更复杂了。非常感谢你的帮助。