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ループは、1次元配列を形成する一意の値の配列を提供します。

whileループは、1次元配列内に値の別の配列を格納することを目的としています。

whileループが最初に戻ると、それが上書きされます。したがって、配列内で最後に返された値のセットのみを取得します。

私の配列は、内部配列のそれぞれに1つの値しかない2次元配列になります。

ここでは、配列がそれ自体を上書きするのを防ぎ、代わりに配列に追加する関数や構文など、非常に基本的なものが欠落しているように感じます。

何か案は?

4

2 に答える 2

2

$topicarray[$value]手順1.手順2に置き換えます$topicarray[$value][]
。???
ステップ3.利益

于 2012-06-20T22:18:38.560 に答える
2

$topicarray[$value]1行ではなく、行の配列を作成します。また、ここでは使用しない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 に答える