2017-09-21 14:28

# php从多维数组中获取所有有效组合

I have a array which represent allowed value in a key. The length of this array is dynamic

``````array(
10=>array(100,101,102),
11=>array(100,104),
12=>array(100,102,103)
)
``````

in this exemple, key 10 can have 100, 101 and 102.

I want to get all valid combination where each value appear only one time

``````array(
array(10=>array(100,101,102),11=>array(104),12=>array(103)),
array(10=>array(100,101),10=>array(104),12=>array(102,103)),
array(10=>array(101),10=>array(100,104),12=>array(102,103)),
array(10=>array(101),10=>array(104),12=>array(100,102,103)),
AND SO ON
)
``````

#### 图片转代码服务由CSDN问答提供 功能建议

``` ```数组（
10 =＆gt;数组（100,101,102），
11 =＆gt;数组（100,104），
12 =＆gt;  ;数组（100,102,103）
）

在这个例子中，键10可以有100,101和102.

我希望获得所有有效组合，其中每个值只出现一次

数组（

array（10 =＆gt; array（101），10 =＆gt; array（104），12 =  ＆gt; array（100,102,103）），
AND SO ON
）

``````
` `
``` 写回答 好问题 提建议 关注问题 收藏 分享 邀请回答 ```
``` 1条回答 默认 最新 dongni3854 2017-09-21 17:34 已采纳 They want you to find the power sets for each index and then calculate the power set of the sets. This code will allows you to calculate the power set for each index. It should get you started and give you an idea of how to complete the rest of the problem. function power_set(\$arr) { \$sets = []; for (\$i = 0; \$i < pow(2, count(\$arr)); \$i++) { \$set = []; for (\$j = 0; \$j < count(\$arr); \$j++) { if (\$i & (1 << \$j)) { \$set[] = \$arr[\$j]; } } if (count(\$set) > 0) { \$sets[] = \$set; } \$set = []; } return \$sets; } Output array(7) { [0] => array(1) { [0] => int(100) } [1] => array(1) { [0] => int(101) } [2] => array(2) { [0] => int(100) [1] => int(101) } [3] => array(1) { [0] => int(102) } [4] => array(2) { [0] => int(100) [1] => int(102) } [5] => array(2) { [0] => int(101) [1] => int(102) } [6] => array(3) { [0] => int(100) [1] => int(101) [2] => int(102) } } One thing that I did notice, is that you aren't including the case where the set has no elements. Technically that should be included, so I would check to ensure that your sample output is right. I modified the algorithm to exclude this case, but I would assume that it should be included. If you want to include it remove the if statement that checks for the number of elements in the \$set. 已采纳该答案 评论 解决 无用 打赏 分享 举报 报告相同问题？ 提交 关注问题 相关推荐 更多相似问题 php从多维数组中获取所有有效组合 php 2017-09-21 14:28 回答 1 已采纳 They want you to find the power sets for each index and then calculate the power set of the sets. php从多维数组中获取最多和最少的值 php 2019-05-10 06:25 回答 2 已采纳 Thanks to KIKO Software, you can still use array_count_values() for this cases. You will also need 如何从php中的多维数组中获取所有特定键值？ php 2012-07-02 23:43 回答 1 已采纳 You can definitely try something like this: \$shop = array( array( 'Title' => "rose", PHP递归删除多维数组中的某个值 2020-10-19 23:53 主要介绍了PHP递归删除多维数组中的某个值,需要的朋友可以参考下 php实现在多维数组中查找特定value的方法 2020-10-23 20:44 主要介绍了php实现在多维数组中查找特定value的方法,实例分析了php实现多维数组的遍历及unset删除的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 php中count获取多维数组长度的方法 2020-10-25 07:16 主要介绍了php中count获取多维数组长度的方法,实例分析了数组的原理并总结了数组长度计算的方法,非常具有实用价值,需要的朋友可以参考下从多维数组中获取用户ID数组[重复] php 2017-05-11 08:40 回答 1 已采纳 Use array_column() function like: \$arr = array_column(\$array, 'ID'); Working Example 从多维数组中获取值 php 2018-11-05 15:16 回答 2 已采纳 You have an extra foreach loop that you do not need. Try this: //loop through array foreach(\$car PHP：在多维数组中枚举所有可能的组合 php 2014-04-29 16:37 回答 3 已采纳 function power_set(\$array) { \$results = [[]]; foreach(\$array as \$tag => \$features) { php实现遍历多维数组的方法 2020-10-23 06:40 主要介绍了php实现遍历多维数组的方法,涉及php针对多维数组的遍历与递归操作实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 php计算多维数组中所有值总和的方法 2020-12-19 19:55 本文实例讲述了php计算多维数组中所有值总和的方法。分享给大家供大家参考。具体实现方法如下： php 内置函数 array_sum() 函数返回数组中所有值的总和，只能返回一维数组的总和； 计算多维数组所有值的和就要自定义... php从多维数组中获取指定的数据 2020-08-20 10:28 坐在沙发上看鱼的博客 在我们开发中,经常会用到,在数组中根据需求,提取某一列,我们可以用一下级中方法实现 \$arr = [ [ 'id'=>1, 'name' => '张三', 'sex'=>'男' ], [ 'id'=>2, 'name' => '李四'... 删除多维数组PHP中的所有特定键 php 2017-09-26 11:16 回答 1 已采纳 You can do it like this: function remove_key(\$array, \$key) { foreach(\$array as \$k => \$v) { 从多维数组php获取值 php 2016-09-06 07:26 回答 2 已采纳 Type these in your address bar: /path/to/your/file.php?id=10&quantity=20 /path/to/your/file.php?i PHP - 从多维数组中获取数据 php 2015-05-23 17:10 回答 1 已采纳 Each time u're looping u'll get in \$email on the entry table : Array ( [0] => 72 PHP递归遍历多维数组实现无限分类的方法 2020-10-22 10:37 主要介绍了PHP递归遍历多维数组实现无限分类的方法,涉及PHP递归操作遍历数组的相关技巧,在联动菜单及父子栏目设计等方面非常具有实用价值,需要的朋友可以参考下 php两个多维数组组合遍历的实例 2020-10-19 00:59 下面小编就为大家带来一篇php两个多维数组组合遍历的实例。小编觉得挺不错的，现在就分享给大家，也给大家做个参考。一起跟随小编过来看看吧 php 删除一个数组中的某个值.兼容多维数组! 2020-12-19 09:15 复制代码 代码如下: function array_remove_key(\$array, \$keys) { \$num = count(\$keys); \$num_last = \$num – 1; \$this_array_0 = &\$array; \$last_key = \$keys[\$num_last]; for (\$i = 0; \$i <...从具有匹配值php的多维数组中获取特定数组 php 2018-08-03 11:17 回答 4 已采纳 One method is to create a flat array of the userid and use array_intersect to get the matching ful php中经典方法实现判断多维数组是否为空 2020-12-18 15:12 复制代码 代码如下://判断一个数组是否为空 /** array( ); 空 array( array( ), array( ), array( ) ); 空 array( array( ), array( array( ), array( 1=>1 ) ), array( ) ); 非 空 */ function is_array_null(\$... 没有解决我的问题, 去提问```
``` 点击登录 提问题 ◇ 欢迎建议意见◇ 回答问题能得到什么？◇ 如何写出高质量提问和回答？◇ 问答使用帮助文档◇ 问答公告 加急问题 ¥200 在调取美团联盟开放平台的poi时，出现问题要添加appkey白名单，要如何解决。 ¥200 被迫升级Windows11之后打游戏总是卡屏蓝屏 ¥200 win 10安装python库pycld3报错 ¥170 急! 面试题请教 - 创建数据库和查询 ¥100 如何实现手机远程控制手机 ¥100 神经网络信号调制类型识别2/4psk fsk ask ¥100 N2N配置supernode，运行一段时间后连接不上了 ¥100 转发视频部分成功部分失败 ¥100 怎么用paddleseg内置的cityscapes相关内容实现城市视频的图像分割 ¥100 电路板上的RTR JTAG ICE接口如何通过仿真器读写，芯片：ksz8995xa\ksz8695x ```
``` ```
``` window.csdn.sideToolbar = { options: { afterFinished: function () { setTimeout(function () { var helphtml = '<a class="option-box" data-type="help" href="https://ask.csdn.net/questions/7441224" target="_blank">'+'<img src="https://g.csdnimg.cn/side-toolbar/2.5/images/bangzhucopy.png" alt="" srcset="">'+ '<span class="show-txt">帮助</span></a>'; \$('.csdn-side-toolbar > a:last').before(helphtml); }, 300); }, contentEl: document.getElementsByClassName('floor')[0] } } ```