You can merge these arrays into one with array_merge()
. This makes it easy to get the counts with array_count_values()
.
One you have the counts you can use a array_filter()
to get the results you want.
Here is the working example http://sandbox.onlinephpfunctions.com/code/95cbae41e146b380d5ba405cdf4bfea4e018f07a
<?php
$set1 = ['23', '11', '52', '33', '1', '4'];
$set2 = ['66', '70', '55', '8', '22', '1'];
$set3 = ['38', '21', '52', '51', '53', '9'];
$set4 = ['14', '31', '54', '5', '73', '39'];
$set5 = ['10', '3', '22', '59', '73', '39'];
$set6 = ['22', '13', '4', '5', '73', '39'];
$set7 = ['40', '3', '22', '5', '13', '30'];
$set8 = ['88', '53', '4', '25', '71', '19'];
$set9 = ['10', '30', '49', '25', '73', '46'];
$set10 = ['10', '3', '4', '5', '73', '11'];
$mergedArray = array_merge($set1, $set2, $set3, $set4, $set5, $set6, $set7, $set8, $set9, $set10);
$counts = array_count_values($mergedArray);
$requiredCount = 3; ## Change this value to whatever counts you need
$requiredResult = array_filter($counts, function ($value) use ($requiredCount){
return $value == $requiredCount;
});
var_dump($requiredResult);
## Or you can echo the keys like this
echo implode(', ', array_keys($requiredResult));
You can wrap the codes in a function to get numbers that appear X times in the set. This is the link to the working example http://sandbox.onlinephpfunctions.com/code/af414606a5e881b11638076e89342183182b8b80
<?php
$set1 = ['23', '11', '52', '33', '1', '4'];
$set2 = ['66', '70', '55', '8', '22', '1'];
$set3 = ['38', '21', '52', '51', '53', '9'];
$set4 = ['14', '31', '54', '5', '73', '39'];
$set5 = ['10', '3', '22', '59', '73', '39'];
$set6 = ['22', '13', '4', '5', '73', '39'];
$set7 = ['40', '3', '22', '5', '13', '30'];
$set8 = ['88', '53', '4', '25', '71', '19'];
$set9 = ['10', '30', '49', '25', '73', '46'];
$set10 = ['10', '3', '4', '5', '73', '11'];
$mergedArray = array_merge($set1, $set2, $set3, $set4, $set5, $set6, $set7, $set8, $set9, $set10);
echo 'Values that appear 1 time: ' . implode(', ', array_keys(getRepeatedNumber($mergedArray, 1))) . '<br>';
echo 'Values that appear 2 times: ' . implode(', ', array_keys(getRepeatedNumber($mergedArray, 2))) . '<br>';
echo 'Values that appear 3 times: ' . implode(', ', array_keys(getRepeatedNumber($mergedArray, 3))) . '<br>';
function getRepeatedNumber($mergedArray, $requiredCount)
{
$counts = array_count_values($mergedArray);
$requiredResult = array_filter($counts, function ($value) use ($requiredCount) {
return $value == $requiredCount;
});
return $requiredResult;
}