如何在 PHP 中另一个数组的 foreach 循环中将数组的值增加 1

How to increment the value of an array by 1 in a foreach-loop of another array in PHP

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

$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 )

谁能帮帮我

您的代码可以简化为:

$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']);
$_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 )