PHP foreach loop to populate a drop-down list with values ​​from an array of arrays

I have an array of arrays created using the following code. I am trying to get this to iterate and populate a drop down list.

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

This is what is stored in the $ names variable.

Array ([0] => Array ([name] => Web Design) [1] => Array ([name] => Creation History) [2] => Array ([name] => Gym) [3 ] => Array ([name] => Russian) [4] => Array ([name] => Biology) [5] => Array ([name] => 3D animation) [6] => Array ([name ] => Technical disk) [7] => Array ([name] => Math) [8] => Array ([name] => Dance) [9] => Array ([name] => Video production) [10 ] => Array ([name] => Home Ec) [11] => Array ([name] => Government) [12] => Array ([name] => Physics))

I have created this drop-down list and it works, but it is manually encoded for each value in the array. I want to change this so that it “contacts” all the results in the array in order to create a drop-down menu.

<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> 

Can anybody help?

+4
3

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 }
+1

Search for each loop to avoid so much coding.

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

Source: https://habr.com/ru/post/1539788/


All Articles