web-dev-qa-db-ja.com

PHP foreachループで、配列の配列の値をドロップダウンリストに入力します

配列の配列を次のコードを使用して作成しました。私はこれをループしてドロップダウンリストを作成しようとしています。

$names = $db->fetchAll("select `name` from `classes`");

これは、$ names変数に格納されるものです。

配列([0] =>配列([名前] => Webデザイン)[1] =>配列([名前] =>美術史)[2] =>配列([名前] =>ジム)[3] = >配列([name] =>英語)[4] =>配列([name] =>生物学)[5] =>配列([name] => 3Dアニメーション)[6] =>配列([name] = > Tech Disc)[7] => Array([name] => Math)[8] => Array([name] => Dance)[9] => Array([name] => Video Production)[10] =>アレイ([name] => Home Ec)[11] =>アレイ([name] => Government)[12] =>アレイ([name] => Physics))

このドロップダウンリストを作成して機能させますが、配列の各値に対して手動でコーディングします。これを変更して、配列内のすべての結果を「ループ」してドロップダウンを作成します。

<label for="per1"></label>
<select name="per1" id="per1">
    <option selected="selected">Choose one</option>
    <option value="<?php echo $names[0]['name'];?>"><?php echo $names[0]['name'];?></option>
    <option value="<?php echo $names[1]['name'];?>"><?php echo $names[1]['name'];?></option>    
    <option value="<?php echo $names[2]['name'];?>"><?php echo $names[2]['name'];?></option>
    <option value="<?php echo $names[3]['name'];?>"><?php echo $names[3]['name'];?></option>
    <option value="<?php echo $names[4]['name'];?>"><?php echo $names[4]['name'];?></option>
    <option value="<?php echo $names[5]['name'];?>"><?php echo $names[5]['name'];?></option>
    <option value="<?php echo $names[6]['name'];?>"><?php echo $names[6]['name'];?></option>
    <option value="<?php echo $names[7]['name'];?>"><?php echo $names[7]['name'];?></option>
    <option value="<?php echo $names[8]['name'];?>"><?php echo $names[8]['name'];?></option>
    <option value="<?php echo $names[9]['name'];?>"><?php echo $names[9]['name'];?></option>
    <option value="<?php echo $names[10]['name'];?>"><?php echo $names[10]['name'];?></option>
    <option value="<?php echo $names[11]['name'];?>"><?php echo $names[11]['name'];?></option>
    <option value="<?php echo $names[12]['name'];?>"><?php echo $names[12]['name'];?></option>           
</select> 

誰か助けてくれますか?

5
Mr. B

このソリューションは、現在のPHPバージョン)で機能します。 foreachを使用する単純なケース:

<select name="per1" id="per1">
  <option selected="selected">Choose one</option>
  <?php
    foreach($names as $name) { ?>
      <option value="<?= $name['name'] ?>"><?= $name['name'] ?></option>
  <?php
    } ?>
</select> 

このソリューションは古いPHPバージョンです)で機能します。 foreachを使用する単純なケース:

<select name="per1" id="per1">
  <option selected="selected">Choose one</option>
  <?php
    foreach($names as $name) { ?>
      <option value="<?php echo $name['name'] ?>"><?php echo $name['name'] ?></option>
  <?php
    } ?>
</select> 
14

これで十分だと思います

foreach($names as $key =>$value)
{?>
<option value="<?=$value['name']?>"><?=$value['name']?></option>    
<?php }
3

これらの多くのコーディングを回避するために、各ループに進みます。

<?php 
foreach($names as $nameIndex=>$nameVal){ ?>
   <option value=$nameVal['name']?>"><?=$nameVal['name']?> </option>
<?php } ?>
0
N.M.N