我有一个具有ID属性的对象数组,我需要将它们链接在一个表中。
我想将链接在一起的对象ID插入到2列MySQL表中。
相关表格有两列: 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 |
-----------
答案 0 :(得分:2)
真的不知道你要做什么。但是如果结果必须是表格示例,那么您可以使用以下循环来完成:
$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
答案 1 :(得分:2)
E.g。梨包Math_Combinatorics可以做到这一点。
<?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
答案 2 :(得分:-2)
请访问此地址:Apriori Algorithm in PHP
方法:setMaxScan(int),setMinSup(int),setMinConf(int),setDelimiter(string),getMinSup(void),getMinConf(void),getMaxScan(void),getDelimiter(void ),process(字符串或数组),printFreqItemsets(void),getFreqItemsets(void),printAssociationRules(void),getAssociationRules(void),saveFreqItemsets(string),saveAssociationRules(string)