求高效算法找
程序员文章站
2022-05-31 22:55:22
...
$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 ))牛比。。
上一篇: 给jqGrid数据行添加修改和删除操作链接(之一)_jquery
下一篇: 随机获取表若干行