Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Как подсчитать количество повторений каждого из значений массива?

#php #массивы


Есть массив:

Array (
  [0] => 1
  [1] => 1
  [2] => 1
  [3] => 2
)


Пример: в сессиях я храню ID товара, количество добавленных товаров с ID = 1 три,
как видно в массиве выше.

Как получить данное количество в переменную, зная ID товара?
    


Ответы

Ответ 1



Например $array = array('1','1','1','2'); $result = array_count_values($array); получаем Array ( [1] => 3 [2] => 1 ) Тоесть чтобы узнать количество вхождений ключа 1 echo $result[1];

Ответ 2



Чтобы посчитать только по одному ID, можно так: $data = [1,1,1,3]; $ID = 1; $n = array_reduce( $data, function($p, $c){ return $p + ($c == $ID ? 1 : 0);}, 0); Встроенная в PHP функция array_reduce() позволяет получить из массива всего одно значение, пройдясь по всем элементам – как раз наш случай.

Ответ 3



Может так? Или задача более специфична? $arr = array(1, 1, 1, 2); $num = 0; $id = 1; foreach ($arr as &$value) { If ($value == $id) { $num++; } } ... unset($value);

Комментариев нет:

Отправить комментарий