0
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 循环返回到开头时,它正在覆盖它。所以我只得到数组中最后返回的一组值。

我的数组最终成为一个二维数组,每个内部数组中只有一个值。

感觉好像我在这里遗漏了一些非常基本的东西——比如一个函数或语法,它可以防止数组覆盖自身,而是添加到数组中。

有任何想法吗?

4

2 回答 2

2

步骤 1. 替换$topicarray[$value]$topicarray[$value][]
步骤 2。 ???
步骤 3. 利润

于 2012-06-20T22:18:38.560 回答
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。

于 2012-06-20T22:19:40.860 回答