查看3个或更多数字是否与数组匹配

时间:2011-04-21 10:14:48

标签: php arrays random

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个数字是否匹配。

2 个答案:

答案 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++;
}