0

私のDAOでDB結果セットを配列として返そうとしています:

$retval以下のコードの配列に文字列のキー値を追加したいと思います。ただし、配列は追加されるのではなく、反復ごとに上書きされ続けます。

したがって、ループの最後では、nペア(データベースから取得されたn行)ではなく、1つのKey-Valueになります。私は何が間違っているのですか?

$retval = array();
while ($row = mysql_fetch_assoc($result)) {

    foreach($columns as $var) {
        $retval[$var]=$row[$var];
    }

}
var_dump($retval);

$retval列が名前と大文字で["name"=>"Japan","capital"=>"Tokyo"]あると予想される代わりに、最終的には。["name"=>"Korea","capital"=>"Seoul"...."Japan"=>"Tokyo"]

4

2 に答える 2

2

私はあなたのコラムが何であるかを見なければならないでしょう、しかしそれはそうであるべきではありません:

$retval = array();
while ($row = mysql_fetch_assoc($result)) {

  $retval[ $row['country'] ] = $row['capital'];

}
于 2012-05-18T01:37:56.897 に答える
0

同じ値(ここでは列名)を上書きしているためです。次のようなものです。

$retval['a'] = 1;
$retval['a'] = 2;
// ...

代わりに以下を使用してください:

$retval[] = $row[$var];

HTH。

于 2012-05-18T01:35:20.860 に答える