我正在尝试构建一个关联数组来保存以下信息。网址,字词和频率(该网页上该字词的出现次数)。
我希望能够访问我为url和word输入字符串并接收频率的信息,如下所示:
$test["somewhere.com"]["biology"] => 5
$test["somewhere.com"]["auto"] => 10
$test["elsewhere.com"]["biology"] => 7
现在我一次从数据库中提取信息并尝试以下操作:
$test["$url"] = array("$word" => "$freq");
每次迭代后都会重写。如何更改语法以避免这种情况?是否有可能构建我想要的结构?
感谢。
编辑: 我在while循环中为数组赋值。我犯了在循环中初始化数组的错误。我没有覆盖参赛作品 无意中重新初始化阵列。那是我的问题。
答案 0 :(得分:2)
您每次都将Object[] aNum = {1, 2};
Object[] aStr = {"1", "2"};
for (int i = 0; i < aNum.length; i++) {
doSomeThing(aNum[i]);
doSomeThing(aStr[i]);
}
重新分配为新阵列。使用完整路径:
$test["$url"]
此外,无需报价。
答案 1 :(得分:1)
不是覆盖第一级内容,而是为它声明一个新属性。 (不知道你是如何获得你的网址,文字和频率,以下只是一个例子)
$test = []
foreach($urls as $url => $words) {
$test[$url]=[];
foreach( $words as $word => $freq) {
$test[$url][$word] = $freq;
}
}
但是,这看起来非常像尝试构建已经构建的关联数组。