Php 为什么数组中的值在foreach中更新时不会更改?

Php 为什么数组中的值在foreach中更新时不会更改?,php,arrays,web-applications,foreach,Php,Arrays,Web Applications,Foreach,我一直在为数组中的特定值进行更改 以下是我目前使用的相关代码: $countryCountList=array("Italy"=> 0, "USA"=> 0); $localResult=mysqli_query($con, $queryforcheck) or die("Errormessage: %s\n". $con->error); $wholeCountryArray = $localResult->fetch_array(MYSQLI_NUM

我一直在为数组中的特定值进行更改

以下是我目前使用的相关代码:

$countryCountList=array("Italy"=> 0, "USA"=> 0);

$localResult=mysqli_query($con, $queryforcheck) or die("Errormessage: %s\n". $con->error);
        $wholeCountryArray = $localResult->fetch_array(MYSQLI_NUM);

foreach($wholeCountryArray as $rowCountry) {
            $countryCountList[$rowCountry]=$countryCountList[$rowCountry]+1;
            }

return $countryCountList;
所以我想在foreach循环中计算数组“countryCountList”中的一些值。我可以证明foreach正在计数,但是当它在我的php文件末尾返回值时,它将返回在这段代码的第一行中定义的值

因此,foreach似乎会向上计数数组的值,但不会保存它以成功返回它


希望这是足够的信息。有人有想法吗?

试着用MYSQLI\u ASSOC替换MYSQLI\u NUM

$wholeCountryArray = $localResult->fetch_array(MYSQLI_ASSOC);
您的循环可能正在运行,但它并没有使用您所期望的字符串索引,而是使用数字,所以它正在运行

$countryCountList[0]=$countryCountList[0]+1;
而不是

$countryCountList["Italy"]=$countryCountList["Italy"]+1;
就像你想的那样