【问题标题】:How to increment the value of an array by 1 in a foreach-loop of another array in PHP如何在PHP中另一个数组的foreach循环中将数组的值增加1
【发布时间】:2019-04-15 20:02:49
【问题描述】:

我正在编写一个程序,该程序必须计算一个值在数组中存在的次数。 到目前为止,这是我的代码:

$aArray1 = array();
$nCount = 1;
foreach ($_SESSION['array2'] as $value) {
    if (array_key_exists($value, $aArray1)) {
        // Increment the value of the existing key(number).
    }else{
        // add $value to $aArray1 and give it a value 1.
        $aArray1[$value] = $nCount;
    }
}

我想知道如何将 $aArray1 中现有数字的值加 1。

当我通过使用 10 个文本框和 post 方法将数字:(4-4-5-6-7-7-7-8-4-4) 放入我的数组中并打印我的 $aArray1 时,它显示如下:

Array ( [4] => 1 [5] => 1 [6] => 1 [7] => 1 [8] => 1 )

但我希望它显示这个:

Array ( [4] => 4 [5] => 1 [6] => 1 [7] => 3 [8] => 1 )

谁能帮帮我。

【问题讨论】:

标签: php arrays foreach key-value


【解决方案1】:

您的代码可以简化为:

$aArray1 = array();
foreach ($_SESSION['array2'] as $value) {
    if (!isset($aArray1[$value])) {
        $aArray1[$value] = 0;
    }
    $aArray1[$value]++;
}

更进一步——这与array_count_values 所做的相同。所以,改用它:

$aArray1 = array_count_values($_SESSION['array2']);

【讨论】:

    【解决方案2】:
    $_SESSION['array2'] = array(4,4,5,6,7,7,7,8,4,4,4,8);
    $aArray1 = array();
    
    foreach ($_SESSION['array2'] as $value) {
     if (array_key_exists($value, $aArray1)) {
          $aArray1[$value] = ($aArray1[$value] + 1);
        // Increment the value of the existing key(number).
      }else{
        // add $value to $aArray1 and give it a value 1.
        $aArray1[$value] = 1;
      }
    }
    

    对于结果:print_r($aArray1);

    Array ( [4] => 5 [5] => 1 [6] => 1 [7] => 3 [8] => 2 )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多