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

だから私はforeachのループでアップ配列「countryCountList」にいくつかの値をカウントします。私はforeachが数えていることを証明することができますが、PHPファイルの終わりのリターンになると、このコードスニペットの最初の行で定義されている値を返します。

だからforeachは配列の値を数えているようですが、それを正常に返すことはできません。

これは十分な情報です。誰かアイデア?

答えて

1

はあなたのループは、おそらくではなく、あなたはそれが数字だけを使っている期待している文字列のインデックスを持つ、そしてそれが

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

をやっているよりも、実行されているMYSQLI_ASSOC

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

でMYSQLI_NUMを交換してみてください

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

あなたはそう思っているようです。

関連する問題