Я делаю программу, которая должна подсчитывать, сколько раз значение существует в массиве. Это мой код до сих пор:
$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.
Когда я помещаю числа:(4-4-5-6-7-7-7-8-4-4) в свой массив, используя 10 текстовых полей с методом post, и печатаю свой $aArray1, он показывает это:
Array ( [4] => 1 [5] => 1 [6] => 1 [7] => 1 [8] => 1 )
Но я хочу, чтобы он показал это:
Array ( [4] => 4 [5] => 1 [6] => 1 [7] => 3 [8] => 1 )
пожалуйста, кто-нибудь может мне помочь.
Я не хочу использовать функцию array_count_values.






Ваш код можно сократить до:
$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 )
Вместо этого попробуйте array_count_values