使用PHP在数组中存储数组

时间:2012-06-20 22:16:34

标签: php arrays loops multidimensional-array

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

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

感觉我在这里缺少一些非常基本的东西 - 比如一个函数或语法,它会阻止数组覆盖自身,而是添加到数组中。

有什么想法吗?

2 个答案:

答案 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。