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

时间:2017-03-18 23:01:14

标签: 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);

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

return $countryCountList;

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

所以似乎foreach确实计算了数组的值,但没有保存它以成功返回它。

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

1 个答案:

答案 0 :(得分:1)

尝试将MYSQLI_NUM替换为MYSQLI_ASSOC

$wholeCountryArray = $localResult->fetch_array(MYSQLI_ASSOC);

你的循环可能正在运行,但是没有你希望它只是使用数字的字符串索引,所以它正在做

$countryCountList[0]=$countryCountList[0]+1;

而不是

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