【发布时间】:2010-05-04 10:59:44
【问题描述】:
现在是困难的部分。你如何优化这个功能:
function coin_matrix($test, $revs) {
$coin = array();
for ($i = 0; $i < count($test); $i++) {
foreach ($revs as $j => $rev) {
foreach ($revs as $k => $rev) {
if ($j != $k &&
$test[$i][$j] != null &&
$test[$i][$k] != null) {
if(!isset($coin[$test[$i][$j]])) {
$coin[$test[$i][$j]] = array();
}
if(!isset($coin[$test[$i][$j]][$test[$i][$k]])) {
$coin[$test[$i][$j]][$test[$i][$k]] = 0;
}
$coin[$test[$i][$j]][$test[$i][$k]] += 1 / ($some_var - 1);
}
}
}
}
return $coin;
}
我不太擅长这个,如果数组很大,它会永远运行。
该函数应该从一个二维数组中找到所有成对的值并将它们相加,如下所示:$coin[$i][$j] += sum_of_pairs_in_array_row / [count(elements_of_row) - 1]
非常感谢!
【问题讨论】:
-
我只是想学习,但还是感谢您的反对。
-
这个函数应该做什么?有时一个代码示例会走很长一段路,但有时一个清晰的英文描述会走得更远。
-
这么多美元,看着我想我已经中了大奖...... chaching
-
它为 Krippendorff 的 Alpha 计算重合矩阵。函数应该返回的数组的每个元素的确切公式在这里:en.wikipedia.org/wiki/… 返回的矩阵(数组)的每个元素都是 Ock 并且根据上面链接中的公式计算。
-
这里是完整的链接:bit.ly/bS9a92
标签: php arrays optimization