我有一个标题为$data
的大型关联数组。为了你的理解,我从它下面打印一个元素。
Array
(
[0] => Array
(
[id] => 92
[zip_code] => 07080
[phone_no] => 7327630062
[amount] =>
[currency] => $
[product_details] => Array
(
)
)
[1] => Array
(
[id] => 93
[zip_code] => 07081
[phone_no] => 7327630063
[amount] => 20
[currency] => $
[product_details] => Array
(
)
)
)
现在我想在上面标题为$data
的关联数组的每个元素中创建一个新的键值对。对于它,我写了以下逻辑,但它没有创建一个新的键值对。有人能在这方面帮助我吗?
foreach($data as $key => $value) {
if(!empty($value['amount'])) {
$value['final_amount'] = $value['amount'] - 2;
} else
$value['final_amount'] = '';
}
来自foreach的手册:
为了能够在循环中直接修改数组元素$value前面加&在这种情况下,值将由参考。
foreach($data as $key => &$value)
在foreach
循环中,通过在变量名前添加&符号&
,通过引用传递$value
:
foreach($data as $key => &$value)
这将允许循环修改原始$data
,而不是修改它的副本。