【发布时间】:2014-10-10 16:22:29
【问题描述】:
我有一个名为 $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 时,PHP 会创建副本,因此执行
$value = something实际上不会影响原始数组 -
尝试通过引用传递
$value -
此外,您的数组似乎是关联数组的索引数组。你可以做
for ($i=0; $i<count($data); $i++){ $data[$i]['something'] = 'something'; } -
@Jonathon 我同意你的第一条评论,但我不同意第二条。 foreach 循环有效
-
@Jonathon 这会增加在循环的每次迭代中调用
count()函数的开销。
标签: php arrays multidimensional-array associative-array key-value