2017-03-18 18 views
1

我坚持在数组中的特定值中进行更改。为什么在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; 

所以我希望计算阵列“countryCountList”一些值了在foreach循环。我可以证明foreach正在计算,但是当涉及到php文件末尾的返回时,它将返回在代码片段第一行中定义的值。

因此,似乎foreach会计算数组的值,但不会保存它以使其成功返回。

希望这是足够的信息。任何人有个想法?

回答

1

尝试MYSQLI_ASSOC更换MYSQLI_NUM

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

你的循环可能是在运行,但不具有,你这只是使用数字期待字符串的索引,所以它做

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

而不是

$countryCountList["Italy"]=$countryCountList["Italy"]+1; 

就像你在想那样。

相关问题