【问题标题】:Why does the value in an array not change when updated in foreach?为什么在foreach中更新时数组中的值不会改变?
【发布时间】:2017-03-18 23:01:13
【问题描述】:

我一直无法更改数组中的特定值。

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

$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 文件末尾的 return 时,它会返回在这个 sn-p 代码的第一行中定义的值。

所以看来 foreach 确实会计算数组的值,但不会保存它以成功返回它。

希望这是足够的信息。有人出主意吗?

【问题讨论】:

    标签: php arrays web-applications foreach


    【解决方案1】:

    尝试用 MYSQLI_ASSOC 替换 MYSQLI_NUM

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

    您的循环可能正在运行,但它没有使用您期望的字符串索引,而是使用数字,所以它正在运行

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

    而不是

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

    就像你想的那样。

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 2015-06-03
      • 2020-01-11
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      • 2020-08-20
      • 1970-01-01
      相关资源
      最近更新 更多