为什么我无法在关联数组中添加新的键值对?

PHP*_*Fan 4 php arrays associative-array key-value multidimensional-array

我有一个名为$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
                (
                )

        )
)
Run Code Online (Sandbox Code Playgroud)

现在我想在上面标题为的关联数组的每个元素中创建一个新的键值对$data。为此,我编写了以下逻辑,但它没有创建新的键值对。有人可以在这方面帮助我吗?

foreach($data as $key => $value) {
        if(!empty($value['amount'])) { 
          $value['final_amount'] = $value['amount'] - 2;
        } else 
          $value['final_amount'] = '';        
      }
Run Code Online (Sandbox Code Playgroud)

Kar*_*ath 5

来自foreach手册

为了能够在循环内直接修改数组元素,在 $value 前面加上 &。在这种情况下,该值将通过引用分配。

foreach($data as $key => &$value)
Run Code Online (Sandbox Code Playgroud)