foreach ($topicarray as $key=>$value){
$files = mysql_query("mysqlquery");
while($file = mysql_fetch_array($files)){ extract($file);
$topicarray[$value] = array( array($id=>$title)
);
}
}
第一个 foreach 循环为我提供了一个形成一维数组的唯一值数组。
while 循环旨在将另一个值数组存储在一维数组中。
当 while 循环返回到开头时,它正在覆盖它。 所以我只得到数组中最后返回的值集。
我的数组最终是一个二维数组,每个内部数组中只有一个值。
感觉我在这里缺少一些非常基本的东西 - 比如一个函数或语法,它可以防止数组覆盖自己,而是添加到数组中。
有什么想法吗?
第
1 步。将$topicarray[$value]
替换为$topicarray[$value][]
第 2 步。???
第 3 步。利润
将$topicarray[$value]
设置为行数组,而不是一行。另外,不要在此处使用extract
。
foreach ($topicarray as $key => $value) {
$rows = array();
$files = mysql_query("mysqlquery");
while($file = mysql_fetch_array($files)) {
$rows[] = array($file['id'] => $file['title']);
}
$topicarray[$value] = $rows;
}
另外,你应该切换到PDO或MySQLi。