当前位置: 首页 > 面试题库 >

在PHP中查找数组的子集

钮长恨
2023-03-14
问题内容

我有一个带有属性的关系架构(ABCD)。我也有一组功能依赖项。

现在,我需要确定R属性的所有可能子集的闭包。那就是我被困住的地方。我需要学习如何在PHP中查找子集(非重复)。

我的数组是这样存储的。

$ATTRIBUTES = ('A', 'B', 'C', 'D').

所以我的子集应该是

$SUBSET = ('A', 'B', 'C', 'D', 'AB', 'AC', AD', 'BC', 'BD', 'CD', 'ABC', 'ABD', 'BCD', 'ABCD')

该代码不应该太大,但是由于某种原因我无法理解。


问题答案:

您希望获得$attributes什么动力?那就是你的问题的含义。

可以在此处找到示例(为完整性起见)

<?php 
/** 
* Returns the power set of a one dimensional array, a 2-D array. 
* [a,b,c] -> [ [a], [b], [c], [a, b], [a, c], [b, c], [a, b, c] ]
*/ 
function powerSet($in,$minLength = 1) { 
   $count = count($in); 
   $members = pow(2,$count); 
   $return = array(); 
   for ($i = 0; $i < $members; $i++) { 
      $b = sprintf("%0".$count."b",$i); 
      $out = array(); 
      for ($j = 0; $j < $count; $j++) { 
         if ($b{$j} == '1') $out[] = $in[$j]; 
      } 
      if (count($out) >= $minLength) { 
         $return[] = $out; 
      } 
   } 
   return $return; 
}


 类似资料:
  • 问题内容: 我试图找到一种方法来返回数组的父键的值。 例如,从下面的数组中,我想找出$ array [‘id’] ==“ 0002”的父键。父键很明显,因为它是在这里定义的(它是“产品”),但是通常它是动态的,因此是问题所在。但是,“ id”和“ id”的值是已知的。 问题答案: 进行一些粗略的递归,但应该可以:

  • 问题内容: 给定一个非负整数数组和一个数字。您需要打印总和等于给定整数的子数组的所有开始和结束索引。 例如 : Explanation : [3, 6] [9], [9,0] These all are the subarrays with their sum equal to 9. 问题答案: 解决这个问题的基本蛮力方法是生成给定数组的所有子数组,然后遍历生成的子数组并计算总和,如果这个总和等于

  • 本文向大家介绍php在数组中查找指定值的方法,包括了php在数组中查找指定值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php在数组中查找指定值的方法。分享给大家供大家参考。具体如下: php中有两个函数可以判断数组中是否包含指定的值,分别是:array_search($value, $array)和in_array($value, $array),array_search可以找

  • 是否有任何预定义的PHP函数可以在多维数组中查找键? 在下面的示例中,有一个变量名“rose”,我需要使用该变量名获取数组的键。关键的结果是“花”。 我如何做到这一点?

  • 我是新来的mongo。我有以下收藏。 文件: 请求: 文档集合中的typeId是文档类型的id,其中请求中的typeId是也可以为空的外部字段。如何获得以下输出。

  • 我们将如何测试数组中每个子数组的长度等于子数组元素之和的P倍的所有子数组组合。 一个简短的示例:编辑: 期望的结果: 长度=2,P*元素之和=1。子序列是 编辑约束: 这些问题属于什么样的问题集(例如:NP-hard?)?语言:C#