2011-04-21 48 views
1

乾草我具有由6個隨機數的陣列,這裏是一個例子看看3個或更多的數字匹配的數組

[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] ... 

我想看看有多少次(從100的數組中)這些數字匹配至少3從頂部數組。你可以猜到這是一個彩票實驗。

正如你所看到的,數組編號3匹配頂數組中的3個數字。

任何想法如何做到這一點?也許可以選擇是否匹配4個數字。

回答

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; 
    } 
+0

這是否不管什麼責令球是嗎? – dotty 2011-04-21 10:23:40

+0

+1教我關於'array_intersect' – Dutchie432 2011-04-21 10:26:13

+0

@dotty:沒有。 // – 2011-04-21 10:26:53

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++; 
} 
+0

哦不,我遲到了 – k102 2011-04-21 10:29:28

+0

+ +1努力:) – Dutchie432 2011-04-21 10:31:02

+1

Dutchie432,謝謝!到上面的問題:使用'foreach($ array爲$ number => $ array)'然後'echo $ number' – k102 2011-04-21 10:33:45

相關問題