Создайте новый массив из двух массивов с помощью i, который будет подсчитывать количество появлений некоторых значений в php

У меня есть два массива

Первый массив:

 Array ( [0] => stdClass Object ( [idConsultant] => 291 ) [1] => stdClass Object ( [idConsultant] => 292 ) [2] => stdClass Object ( [idConsultant] => 293 ) ) 

Второй массив:

Array ( [0] => stdClass Object ( [idConsultant] => 291 ) [1] => stdClass Object ( [idConsultant] => 291 ) [2] => stdClass Object ( [idConsultant] => 292 ) ) 

Мне нужна функция, которая вернет меня, для каждого значения в первом массиве количество вхождений во втором.

Результат, который я ищу:

Array ( [0] => stdClass Object ( [291] => 2 ) [1] => stdClass Object ( [292] => 1 ) [2] => stdClass Object ( [293] => 0 ) )

Спасибо.

что ты уже испробовал? разместите свой код также здесь.

Leena Patel 07.09.2018 07:00
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
1
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

есть функция под названием array_count_values, которая очень удобна в вашей ситуации

должно работать что-то вроде следующего (при условии, что ваши массивы называются arrA и arrB

$arrCntValues = array_count_values(
    array_merge
    (
        array_column($arrA, 'idConsultant'), 
        array_column($arrB, 'idConsultant')
    )
);

print_r($arrCntValues);

и если вам это действительно нужно, например, ваша желаемая структура, просто перебирайте ее

$arrObjects = [];
foreach($arrCntValues AS $key => $val)
{
    $obj = new stdClass();
    $obj->$key = $val;
    $arrObjects[] = $obj;
}

print_r($arrObjects);

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