求高效演算法找

來源:互聯網
上載者:User
$a = array(    'A' => array(1,2,3,4,5,6),    'B' => array(1,7,8,9),    'C' => array(1,6,7,8,9),)        $b = array(    '2','4')    求高效演算法找出 $b數組  屬於數組 $a  A、B、C的那一項的子集,注 $a,$b 數量不確定  


回複討論(解決方案)

$a = array(    'A' => array(1,2,3,4,5,6),    'B' => array(1,7,8,9),    'C' => array(1,6,7,8,9),);     $b = array(    '2','4');$r = array_filter($a, function($t) use ($b) {  return array_intersect($b, $t) == $b;});print_r($r);
Array(    [A] => Array        (            [0] => 1            [1] => 2            [2] => 3            [3] => 4            [4] => 5            [5] => 6        ))

foreach ($a as $key => $aa) {    if (count($aa) == count(array_flip(array_merge($aa, $b)))) {        echo $key;        break;    }}

不知道這個算不算高效

$a = array(    'A' => array(1,2,3,4,5,6),    'B' => array(1,7,8,9),    'C' => array(1,6,7,8,9),);     $b = array(    '2','4');$r = array_filter($a, function($t) use ($b) {  return array_intersect($b, $t) == $b;});print_r($r);
Array(    [A] => Array        (            [0] => 1            [1] => 2            [2] => 3            [3] => 4            [4] => 5            [5] => 6        ))

牛比。。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.