我有一个名为$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'] = '';
}
答案 0 :(得分:3)
为了能够直接修改循环内的数组元素 使用&前面的$ value。在这种情况下,值将由 参考
foreach($data as $key => &$value)
答案 1 :(得分:2)
在foreach
循环中,通过在变量名前添加&符$value
来引用&
:
foreach($data as $key => &$value)
这将允许循环修改原始$data
,而不是修改它的副本。