Создайте новый массив из двух массивов с помощью которых я буду считать количество появлений некоторых значений в php - PullRequest
0 голосов
/ 07 сентября 2018

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

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

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

Мне нужна функция, как будет возвращать меня, foreach значение в первом массиве номер вхождения во втором.

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

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

Спасибо.

1 Ответ

0 голосов
/ 07 сентября 2018

есть функция с именем 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...