2015-05-12 44 views
-1

我有這個2d數組代表搜索引擎返回的每個頁面的傳出鏈接,現在我必須找到每個頁面的入站鏈接的數量。如何在php中查找入站鏈接的數量,如果我有頁面之間的鏈接數組?

例如圖1是存在於key2,3,4,5,6子陣列,使得其入站的數目將是5.

我需要這在PHP。

$links = array( 
     1 => array(2,3,4,5,6), 
     2 => array(1,3,4,5,6), 
     3 => array(1,2,4,5,6), 
     4 => array(1,2,3,5,6), 
     5 => array(1,2,3,4,6), 
     6 => array(1,2,3,4,5), 
     7=> array (11), 
     8=>array(7,9), 
     9=> array(7), 
     10=> array(8), 
     11=> array(8,10), 

); 
+0

可能更容易幫助,如果你能告訴我們你所要的輸出是什麼。你能否編輯你的問題以包含你想要的結果的例子? –

+1

http://stackoverflow.com/a/12232970/689579? – Sean

+0

@EricRenouf例如,對於上面的數組,1的入站鏈接數將爲5,因爲1在位置2,3,4,5,6的子數組中存在0 – parul

回答

1

可能是一個更清潔的方式,但一個方法是創建一個新的數組,循環現有的陣列,並添加到使用該值作爲重點的新陣列。

$results=array(); 
foreach($links as $link){ 
    foreach($link as $value){ 
     $results[$value] = isset($results[$value]) ? $results[$value]+1 : 1; 
    } 
} 

與示例數據,你的結果會是什麼樣子 -

Array ( 
    [1] => 5 
    [2] => 5 
    [3] => 5 
    [4] => 5 
    [5] => 5 
    [6] => 5 
    [7] => 2 
    [8] => 2 
    [9] => 1 
    [10] => 1 
    [11] => 1 
) 
+0

bt它不包括密鑰1 – parul

+0

你是什麼意思?你說'1在key2,3,4,5,6的子數組中存在,所以它的入站數將是5',在我的例子中是[1] => 5'。 '它不算數字1'? – Sean

+0

'2'在'1,3,4,5,6'中,所以'[2] => 5',....,'7'在'8,9'中,所以'[7] => 2 ',....和'11'在'7'中,所以'[11] => 1' – Sean

相關問題