2017-03-18 39 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; 

就像你在想那樣。

相關問題