I have two arrays
The first array:
Array ( [0] => stdClass Object ( [idConsultant] => 291 ) [1] => stdClass Object ( [idConsultant] => 292 ) [2] => stdClass Object ( [idConsultant] => 293 ) )
The second array:
Array ( [0] => stdClass Object ( [idConsultant] => 291 ) [1] => stdClass Object ( [idConsultant] => 291 ) [2] => stdClass Object ( [idConsultant] => 292 ) )
I need a function how will return me, foreach value in the first array the number of occurrence in the second.
The result i am looking for is:
Array ( [0] => stdClass Object ( [291] => 2 ) [1] => stdClass Object ( [292] => 1 ) [2] => stdClass Object ( [293] => 0 ) )
Thank you.
there is a function called array_count_values
- which is pretty handy in your situation
something like the following should work (assuming your arrays are named arrA
and arrB
$arrCntValues = array_count_values(
array_merge
(
array_column($arrA, 'idConsultant'),
array_column($arrB, 'idConsultant')
)
);
print_r($arrCntValues);
and if you really need it like your desired structure just iterate over it
$arrObjects = [];
foreach($arrCntValues AS $key => $val)
{
$obj = new stdClass();
$obj->$key = $val;
$arrObjects[] = $obj;
}
print_r($arrObjects);