Php 更新数组中的值
我正在尝试将每个数组上的reviewCount更新为1。我不明白为什么我的foreach循环不会更新它。任何帮助都将不胜感激 $输出:Php 更新数组中的值,php,arrays,loops,Php,Arrays,Loops,我正在尝试将每个数组上的reviewCount更新为1。我不明白为什么我的foreach循环不会更新它。任何帮助都将不胜感激 $输出: Array( [1] => Array( [category] => Category 1 [country] => USA [date] => 2012-04-07 23:50:49 [name] => Product 1 [reviewCou
Array(
[1] => Array(
[category] => Category 1
[country] => USA
[date] => 2012-04-07 23:50:49
[name] => Product 1
[reviewCount] =>
)
[2] => Array(
[category] => Category 1
[country] => USA
[date] => 2012-04-07 23:50:49
[name] => Product 1
[reviewCount] =>
)
代码:
它不会在$output内更新它,因为您正在对行的副本设置审阅计数。改为这样做:
foreach ($output as &$row) { // <-- added &
$row['reviewCount'] = 1;
}
通过这种方式,您可以再次对原始行进行操作-显然,因为您是使用其键从数组内部手动获取它。不使用引用的替代方式:&
我很感兴趣,怎么会更糟?你能详细说明一下吗@NiftyDude:它会再执行一次查找。这不是什么大问题,所以引用的话更糟。
foreach ($output as &$row) { // <-- added &
$row['reviewCount'] = 1;
}
foreach ($output as $key => $row) {
$output[$key]['reviewCount'] = 1;
}
foreach($output as $i => $row) {
$output[$i]['reviewCount'] = 1;
}