1

$papersだから私はデータベースから来る配列を持っています。配列のサイズは、データベースを変更する人の意志で変更できます。

私は次のようなことをしたと思った:

foreach($papers as $paper) {
    echo '<option value="' . $paper . '">' . $paper . '</option>';
}

フォームで動的リストを取得できました。ただし、これを試してみると、何らかの理由で Web ページが空白になります。明らかに私は次のようなことができます:

for($i = 0; $i < SOME_NUMBER; $i++) {
    echo '<option value="' . $papers[$i] . '">' . $papers[$i] . '</option>';
}

しかし、配列のサイズが可変であるため、実行可能なオプションのようには見えません。また、単純な for ループの 2 番目の方法を使用すると、ページが読み込まれ、実際に値が表示されます。それがなぜなのか、私は非常に混乱しています。どんな助けでも素晴らしいでしょう、ありがとう。

4

3 に答える 3

2

foreachこのようにループを変更できます

foreach($papers as $key => $value) {
    echo '<option value="' . $key . '">' . $value . '</option>';
}

where$keyはインデックスを保持しており$value、配列の実際の値を保持しています

$papperあなたの配列でどのデータを取得しているのかわかりませんが、このようにすることもできると思います

foreach($papers as $paper) {
    echo '<option value="' . $paper['your_db_field_name'] . '">' . $paper['your_db_field_name'] . '</option>';
}

以下のように簡単for loopに使用できますsizeof()

for($i = 1 ; $i <= sizeof($pappers) ; $i++){
//your logic
}
于 2012-06-20T15:50:48.430 に答える
1

配列参照メソッドを使用する場合は、これを試してください。

for($i = 0; $i < count($papers); $i++) {
    echo '<option value="' . $papers[$i] . '">' . $papers[$i] . '</option>';
}

count() 関数は、あなたが言うように、実行するたびに異なる可能性がある配列の長さを返します。

于 2012-06-20T15:50:23.903 に答える
0

エラー報告をオンにする

error_reporting(E_ALL | E_STRICT);
init_set('display_errors', 'on');

でデバッグしてみてください:

print_r($papers);

配列 $papers の構造を見てください

于 2012-06-20T15:52:42.117 に答える