【发布时间】:2015-04-25 13:01:44
【问题描述】:
在我们的数据库中,我们有一个表,它是三个表的每个排列的结果。
我正在尝试编写一个 PHP 脚本,它将所有这些表视为数组并检测是否缺少排列。
例如
$foo = array('one', 'two', NULL)
$bar = array('three', 'four', NULL)
$baz = array('five', 'six', NULL)
$permutations = array(
array('one', 'three', 'five'),
array('two', 'three', 'five'),
array(NULL, 'three', 'five'),
//etc
)
foreach $foo as $x
foreach $bar as $y
foreach $baz as $z
$combo = array($x, $y, $z)
if $combo is not in $permutations
//generate sql to update db
我怎样才能做到这一点?
【问题讨论】:
-
如果您有 X 个表,每个表都有 Y 个元素 (??),如果这是“重复排列”,那么您将有 X^Y 排列。因此,快速冒烟测试将确保
$permutations长度与 X^Y 相同(或任何集合范围应该)......你也可以做一些事情,比如确保$permutations 在进行长度检查之前只有唯一元素。这可能比检查每一个可能的排列更有效。
标签: php arrays recursion multidimensional-array