使用 PHP 将数组存储在数组中


Storing array within an array using PHP

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。