Php 更新数组中的值

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

我正在尝试将每个数组上的reviewCount更新为1。我不明白为什么我的foreach循环不会更新它。任何帮助都将不胜感激

$输出:

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;
}