我正在编写一个程序,该程序必须计算一个值在数组中存在多少次。 到目前为止,这是我的代码:
$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 )
请任何人可以帮助我。
答案 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 )