@YakovenkoND

Как посчитать количество совпадающих элементов в массиве?

У меня есть условный массив:

array(6) {
  [0]=>
  array(2) {
    ["name"]=>  "x1"
  }
  [1]=>
  array(2) {
    ["name"]=> x2"
  }
  [2]=>
  array(2) {
    ["name"]=> "x1"
  }
  [3]=>
  array(2) {
    ["name"]=> "x3"
  }
  [4]=>
  array(2) {
    ["name"]=> "x2"
  }
  [5]=>
  array(2) {
    ["name"]=> "x2"
  }


Как я могу посчитать количество упоминаний внутри этого массива и создать такой массив?
Где count- количество упоминаний в массиве
array(3) {
  [0]=>
  array(2) {
    ["name"]=> "x1"
    ["count"]=> "2"
  }
  [1]=>
  array(2) {
    ["name"]=> "x2"
    ["count"]=> "3"
  }
  [2]=>
  array(2) {
    ["name"]=> "x3"
    ["count"]=> "1"
  }
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
array_column, array_count_values, array_map, array_keys, array_values.
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
$index = [];
foreach ($items as $item) {
  $key = json_encode($item); // md5/crc32/spl_object_id/implode('.')/etc.
  $index[ $key ] = $index[ $key ] ?? 0;
  $index[ $key ]++;
}
var_dump($index); // { key => 1, key2 => 2, key3 => 1 }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы