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

时间:2019-04-15 09:25:23

标签: php arrays foreach key-value

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

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

当我通过post方法使用10个文本框将数字(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 )

请任何人可以帮助我。

2 个答案:

答案 0 :(得分:0)

您的代码可以简化为:

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

答案 1 :(得分:0)

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