我试图在几个数组中查找项目的所有组合。数组的数量是随机的(可以是2、3、4、5 …)。每个数组中的元素数量也是随机的…
例如,我有3个数组:
$arrayA = array('A1','A2','A3');
$arrayB = array('B1','B2','B3');
$arrayC = array('C1','C2');
我想生成一个具有3 x 3 x 2 = 18个组合的数组:
问题是要创建一个具有可变数量的源数组的函数…
这是递归解决方案:
function combinations($arrays, $i = 0) {
if (!isset($arrays[$i])) {
return array();
}
if ($i == count($arrays) - 1) {
return $arrays[$i];
}
// get combinations from subsequent arrays
$tmp = combinations($arrays, $i + 1);
$result = array();
// concat each array from tmp with each element from $arrays[$i]
foreach ($arrays[$i] as $v) {
foreach ($tmp as $t) {
$result[] = is_array($t) ?
array_merge(array($v), $t) :
array($v, $t);
}
}
return $result;
}
print_r(
combinations(
array(
array('A1','A2','A3'),
array('B1','B2','B3'),
array('C1','C2')
)
)
);
本文向大家介绍从数组数组中返回一个数组,其中每个项目是JavaScript中相应子数组中所有项目的总和,包括了从数组数组中返回一个数组,其中每个项目是JavaScript中相应子数组中所有项目的总和的使用技巧和注意事项,需要的朋友参考一下 给定一个数组数组,每个数组包含一组数字。我们必须编写一个返回数组的函数,其中每个项目都是相应子数组中所有项目的总和。 例如- 如果输入数组是- 那么我们函数的输
如果添加由3个元素组成的第三个列表,我将有36个组合,以此类推。 对于如何在Java中实现这一点有什么想法吗? (伪代码也可以)
给定两个数组,其中数组1包含变量,数组2包含变量的值,我希望得到这两个数组的所有可能组合,例如: 数组可以容纳尽可能多的变量,也可以容纳。 所需输出: 我尝试了一种递归方法: 我希望能够将每一行正确的内容保存为中的一个元素,但首先我想知道如何正确打印每一行。 编辑:第二个数组不是常量,它在每个变量之间不同: 显然,这在递归中行不通,因为我需要将每个数组与变量数组一起发送,我通过创建一个对象来实现这
问题内容: 这是问题: 给定Python中的项目列表,我将如何获得这些项目的所有可能组合? 这个站点上有几个类似的问题,建议使用itertools.combine,但是仅返回我需要的一部分: 如您所见,它仅按严格顺序返回项目,而不返回(2,1),(3,2),(3,1),(2、1、3),(3、1、2),( 2,3,1)和(3,2,1)。有一些解决方法吗?我似乎什么都没想。 问题答案: 用途: 帮助:
问题内容: 目前,我试图让所有可能的组合从的,是每一个元素只包含一个字母。 在本身包含相同字母两次甚至更多,他们只应该,因为他们经常会出现使用。 在稍后应该含有最多的给定的长度从最小的2个字母的所有组合。 我在此处搜索了stackoverflow,但只发现了忽略以下事实的置换函数:每个字母仅在出现时才经常使用。 这是我的第一个Swift 2项目,所以请原谅我的绿色态度:) 我想要的是 我目前的做法
问题内容: 给定未知数量的列表,每个列表的长度都未知,我需要生成一个包含所有可能唯一组合的单数列表。例如,给出以下列表: 然后,我应该能够生成12种组合: 如果添加了第三个元素列表,那么我将有36种组合,依此类推。 关于如何在Java中执行此操作的任何想法? (伪代码也可以) 问题答案: 你需要递归: 假设你的所有列表都在中,这是列表的列表。让是你所需要的排列的列表。你可以这样实现: 最终的呼叫将