gpt4 book ai didi

PHP计算二维数组的每个排列

转载 作者:可可西里 更新时间:2023-11-01 00:43:37 26 4
gpt4 key购买 nike

几天来我一直在寻找和摸索,但我进退两难。在我之前的所有代码运行之后,我剩下这个数组:

Array ( 
[0] => Array
(
[0] => 1
[1] => 3
)
[1] => Array
(
[0] => 6
[1] => 7
[2] => 8
)
[2] => Array
(
[0] => 9
[1] => 10
)
)

我需要做的是计算所有键的所有可能排列。

所需的输出需要可以作为单独的记录轻松插入,或者最好是批量插入到 sql 数据库中。

在四处寻找之后,我尝试了无数的例子。我得到的最接近的是使用内爆函数,但这仍然行不通。

非常感谢任何帮助!

--编辑--

这是返回数组的示例:

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
)

这不是每个排列,但应该让您了解我需要实现的目标。

最佳答案

您要执行的操作在以下公式中定义:permutation formula

它可能会那样做,它被称为笛卡尔积:

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);

关于PHP计算二维数组的每个排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26983789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com