Как увеличить значение массива на 1 в цикле foreach другого массива в 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.

Когда я помещаю числа:(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

The fourth bird 15.04.2019 11:26

Я не хочу использовать функцию array_count_values.

cbk38 15.04.2019 11:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
312
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваш код можно сократить до:

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

Другие вопросы по теме