>我正在尝试构建一个关联数组来保存以下信息。网址、字词和频率(该字词在该网页上出现的次数 #(。
我希望能够访问输入 url 和单词字符串并接收频率的信息,如下所示:
$test["somewhere.com"]["biology"] => 5
$test["somewhere.com"]["auto"] => 10
$test["elsewhere.com"]["biology"] => 7
现在,我正在一次一行地从数据库中提取信息,并正在尝试以下操作:
$test["$url"] = array("$word" => "$freq");
每次迭代后,它都会被覆盖。如何更改语法以避免这种情况?是否可以构建我想要的结构?
谢谢。
编辑:我在一段时间循环中为数组赋值。我犯了在循环中初始化数组的错误。我没有覆盖条目,我是无意中重新初始化数组。那是我的问题。
$test["$url"]
重新分配为新数组。 使用完整路径:
$test[$url][$word] = $freq;
另外,不需要引号。
不要覆盖第一级内容,而是为其声明一个新属性。(不知道你是如何获得你的网址、单词和频率的,下面只是一个例子(
$test = []
foreach($urls as $url => $words) {
$test[$url]=[];
foreach( $words as $word => $freq) {
$test[$url][$word] = $freq;
}
}
但是,这看起来非常像尝试构建已经构建的关联数组。