我一直在寻找和挠头几天,我被困在一块岩石和一块坚硬的地方之间。在我之前的所有代码运行之后,我留下了这个数组:
Array (
[0] => Array
(
[0] => 1
[1] => 3
)
[1] => Array
(
[0] => 6
[1] => 7
[2] => 8
)
[2] => Array
(
[0] => 9
[1] => 10
)
)
我需要做的是计算所有键的每个可能的排列。
所需的输出需要可以作为单个记录轻松插入,或者最好是大量插入到sql数据库中。
在我狩猎之后,我尝试了无数的例子。我得到的最接近的是使用Implode函数,但这仍然不起作用。
非常感谢任何帮助!
- 编辑 -
以下是返回数组的外观示例:
Array
(
[0] => 1,6,9
[1] => 1,6,10
[2] => 3,6,9
[3] => 3,6,10
[4] => 1,7,9
[5] => 1,7,10
[6] => 3,7,9,
[7] => 3,7,10
)
这不是每个排列,但应该让你知道我需要实现的目标。
答案 0 :(得分:5)
您要尝试做的事情在此公式中定义:
可能会这样做,它被称为笛卡尔积:
function cartesian() {
$_ = func_get_args();
if(count($_) == 0)
return array(array());
$a = array_shift($_);
$c = call_user_func_array(__FUNCTION__, $_);
$r = array();
foreach($a as $v)
foreach($c as $p)
$r[] = array_merge(array($v), $p);
return $r;
}
$count = cartesian(
Array(1,3),
Array(6,7,8),
Array(9,10)
);
print_r($count);