我有存儲在mongodb集合 - 頁面中的數據。每頁有以下屬性:PHP數組交叉點 - 找到公共子集
title - string
id - number
contents - it is an object with 3 attribute
contents.topic - string
contents.parentTopic - number
contents.text - string
我有大約500頁存儲在數據庫中,性能對我來說不是一個很大的考慮。
我需要找到所有頁面的共同內容。如果我做以下事情:
$pages = $db->selectCollection("pages");
$cursor = $pages->find(array());
$data = array();
foreach ($cursor as $page){
array_push($data,$page);
}
$intersect = call_user_func_array('array_intersect_assoc',$data);
echo "<pre>";
print_r($intersect);
像這樣,我可以在所有工作正常的頁面上獲得通用內容。只要所有頁面中至少有一個共同的「內容」,就是如此。
但我需要找到所有頁面的公共子集。例如,找到第1-50頁中常見的內容,可能是第45,59,79,123頁中常見的另一個子集,另一個可能在第450-459頁中很常見
任何更好的解決方案找到這樣的共同子集?它需要創建樹嗎?
謝謝。
這種相似性檢查的目的是什麼?我認爲當頁面數量變大時,所需資源將呈指數增長。 – insanebits
這是正確的,但頁數不會增長,幾乎將保持在500左右。 – Ahmad