Hay我有一个包含6个随机数的数组,这是一个例子
[4,8,12,22,23,43]
我还有100个包含6个数字的数组,这些都是随机的,有几个例子可能是
[5,8,15,47,32,48]
[3,4,8,12,33,42]
[8,12,26,55,43,33]
[4,63,45,23,45,55] ...
我想看看这些数字与顶部数组中至少3个匹配的次数(100个数组中)。你可以猜到这是一个彩票实验。
如您所见,数组3匹配顶部数组中的3个数字。
任何想法怎么做?也许可以选择查看4个数字是否匹配。
答案 0 :(得分:5)
$master_array = array(4, 8, 12, 22, 23, 43);
$arrays = array(array(5, 8, 15, 47, 32, 48),
array(3, 4, 8, 12, 33, 42),
array(8, 12, 26, 55, 43, 33),
array(4, 63, 45, 23, 45, 55));
foreach ($arrays as $arr)
{
$intersect = array_intersect($master_array, $arr);
if (count($intersect)==3) print 'Match: '.print_r($arr, true).PHP_EOL;
}
答案 1 :(得分:2)
也许像这样:
$winner = [4,8,12,22,23,43];
$arrays = //all your 100 arrays
$i = 0; // number of matches
foreach ($arrays as $array)
{
$result = array_intersect($array, $winner);
if (count($result) >= 3) $i++;
}