我在这个问题中使用公认的答案。由于我有相同的要求,我需要获取可变长度数组和可变数量元素的所有组合。但是,我还需要它来生成所有不使用数组的所有元素但按顺序排列的组合。如果这有意义吗?
所以如果这是数组:
$数组 = 数组( 数组('1','2'), 数组('a','b','c'), 数组('x','y'), );
我还希望它像 1a、1b、1c、2a、2b、2c 一样添加。但不是 1x 或 1y,因为它错过了数组的第二个元素。
我不太清楚如何更改答案以包含此内容。
谢谢,心理学
我在这个问题中使用公认的答案。由于我有相同的要求,我需要获取可变长度数组和可变数量元素的所有组合。但是,我还需要它来生成所有不使用数组的所有元素但按顺序排列的组合。如果这有意义吗?
所以如果这是数组:
$数组 = 数组( 数组('1','2'), 数组('a','b','c'), 数组('x','y'), );
我还希望它像 1a、1b、1c、2a、2b、2c 一样添加。但不是 1x 或 1y,因为它错过了数组的第二个元素。
我不太清楚如何更改答案以包含此内容。
谢谢,心理学
在链接问题的答案中使用 Josh Davis 的方法:
$array = array( array('1', '2'),
array('a', 'b', 'c'),
array('m', 'n'),
array('x', 'y'));
$result = array();
$php = 'list($a' . implode(',$a', array_keys($array)) . ')=$array;';
$close_brakets='';
$r='';
foreach($array as $k => $v)
{
$r .= '$v'.$k;
$php.='foreach($a'.$k.' as $v'.$k.'){ $result[]="'.$r.'";';
$close_brakets.="}";
}
$php .= $close_brakets;
eval($php);
print_r($result);
为您提供所需的组合
像这样的东西?这个想法是循环一个数组,并与另一个数组中的每个值组合。
// Loop array[0].
for($i=0; $i<count($array[0]); $i++) {
// Loop array[1]
for($j=0; $j<count($array[1]); $j++) {
echo $array[0][$i];
echo $array[1][$j];
}
}
好吧,使用我最初使用的代码,这就是我想出的,以防其他人好奇
$patterns_array = 数组(); $php = ''; foreach ($patterns as $i = > $arr) { $php .= 'foreach ($patterns[' . $i . '] as $k' . $i . ' => $v' . $i . '){'; $tmp = 数组(); for($ii=1;$ii<=$i;$ii++){ $tmp[] = $ii; } $php .= '$patterns_array[] = $v'.implode('."::".$v', $tmp).';'; } $php .= '$patterns_array[] = $v' 。内爆('."::".$v', array_keys($patterns)) 。';' . str_repeat('}', 计数($patterns)); 评估($ php);