2017-03-27 57 views
1

我想構建一個關聯數組來保存下列信息。網址,單詞和頻率(該網頁上該單詞的出現次數)。關聯數組覆蓋條目php

我希望能夠訪問,我輸入一個字符串的URL和文字信息和接收頻率,這樣的:

$test["somewhere.com"]["biology"] => 5 
$test["somewhere.com"]["auto"] => 10 
$test["elsewhere.com"]["biology"] => 7 

現在我拉出的信息分貝之一一次一排,我正在嘗試以下操作:

$test["$url"] = array("$word" => "$freq"); 

每次迭代後都會被寫入。如何更改語法以避免這種情況?是否有可能建立我想要的結構?

感謝。

編輯: 我在while循環中給數組賦值。我犯了在循環內初始化數組的錯誤。我沒有覆蓋條目,我是 無意中重新初始化數組。那是我的問題。

+0

你放棄了嗎? – AbraCadaver

+0

@AbraCadaver見編輯。感謝幫助 – overboard182

回答

2

您每次都重新指定$test["$url"]作爲新陣列。使用完整路徑:

$test[$url][$word] = $freq; 

另外,不需要引號。

1

而不是覆蓋第一級內容,爲它聲明一個新的屬性。 (不知道你是如何讓你的網址,文字和頻率,下面只是一個例子)

$test = [] 
foreach($urls as $url => $words) { 
    $test[$url]=[]; 
    foreach($words as $word => $freq) { 
     $test[$url][$word] = $freq; 
    } 
} 

然而,這看起來非常像試圖建立一個已經建立了一個關聯數組。