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循环用于在1维数组中存储另一个值数组。
当while循环返回到开头时,它会覆盖它。所以我只得到数组中最后一组返回的值。
我的数组最终是一个二维数组,每个内部数组只有一个值。
感觉我在这里缺少一些非常基本的东西 - 比如一个函数或语法,它会阻止数组覆盖自身,而是添加到数组中。
有什么想法吗?
答案 0 :(得分:2)
步骤1.将$topicarray[$value]
替换为$topicarray[$value][]
步骤2. ???
第3步。利润
答案 1 :(得分:2)
使$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。