我有一个带有ID属性的对象的数组,我需要将它们链接到一个表中。
我希望将链接在一起的对象I插入到一个2列MySQL表中。
该表有2列:A和B。我想链接在一起的对象集合没有任何重叠。
我把它称为伪先验,因为它类似于apriori算法的候选生成过程。
对于下面的示例,我有一个ID值为1-5的五个对象。例如:$obj1->id == 1,等等。
示例表:
Input IDs:
{1, 2, 3, 4, 5}
Output DB Table:
-----------
| A  |  B |
-----------
| 1  |  2 |
| 1  |  3 |
| 1  |  4 |
| 1  |  5 |
| 2  |  3 |
| 2  |  4 |
| 2  |  5 |
| 3  |  4 |
| 3  |  5 |
| 4  |  5 |
-----------发布于 2013-03-08 13:28:48
真的不知道你想做什么。但是,如果结果必须是表示例,则可以使用以下循环完成:
$arr = array(1, 2, 3, 4, 5);
for($i = 0; $i < count($arr); $i++) {
    for($j = $i+1; $j < count($arr); $j++) {
        // add db logic here
        $q = 'insert into table (' . $arr[$i] . ', ' . $arr[$j] . ')';
    }
}下面是输出的jsFiddle示例:JsFiddle
发布于 2013-03-08 13:29:41
例如,pear包组合学可以做到这一点。
<?php
require 'Math/Combinatorics.php';
$c = new Math_Combinatorics;
foreach( $c->combinations(array(1,2,3,4,5), 2) as $k ) {
    echo join(', ', $k), "\n";  
}版画
1, 2
1, 3
1, 4
1, 5
2, 3
2, 4
2, 5
3, 4
3, 5
4, 5发布于 2014-11-22 08:56:41
请访问此地址:PHP中的先验算法
方法:setMaxScan(int)、setMinSup(int)、setMinConf(int)、setDelimiter(string)、getMinSup(void)、getMinConf(void)、getMaxScan(void)、getDelimiter(void)、进程(字符串或数组)、printFreqItemsets(void)、getFreqItemsets(void)、printAssociationRules(void)、getAssociationRules(void)、saveFreqItemsets(string)、saveAssociationRules(string)。
https://stackoverflow.com/questions/15294591
复制相似问题