简体   繁体   中英

Auto populate <Select> box from array

How would i auto-fill an select box with the following php values?

array (
  0 => 
  array (
    'slug' => 'acura',
    'name' => 'Acura',
    'name_en' => 'Acura',
  ),
  1 => 
  array (
    'slug' => 'alfa-romeo',
    'name' => 'Alfa Romeo',
    'name_en' => 'Alfa Romeo',
  ),
  2 => 
  array (
    'slug' => 'alpine',
    'name' => 'Alpine',
    'name_en' => 'Alpine',
  ),
  3 => 
  array (
    'slug' => 'aro',
    'name' => 'ARO',
    'name_en' => 'ARO',
  ),
  4 => 
  array (
    'slug' => 'aston-martin',
    'name' => 'Aston Martin',
    'name_en' => 'Aston Martin',
  ),

it is decoded json data converted into appropriate PHP types. i only want the 'name_en'

Use name from the array to use it on the select option

<?php
$arr = array (

  array (
    'slug' => 'acura',
    'name' => 'Acura',
    'name_en' => 'Acura',
  ),
  array (
    'slug' => 'alfa-romeo',
    'name' => 'Alfa Romeo',
    'name_en' => 'Alfa Romeo',
  ),

  array (
    'slug' => 'alpine',
    'name' => 'Alpine',
    'name_en' => 'Alpine',
  ),

  array (
    'slug' => 'aro',
    'name' => 'ARO',
    'name_en' => 'ARO',
  ),

  array (
    'slug' => 'aston-martin',
    'name' => 'Aston Martin',
    'name_en' => 'Aston Martin',
  ),
);   
?>

<select name="names">
<option value="">Select</option>
<?php
foreach($arr as $key => $value):
echo '<option value="'.$key.'">'.$value['name'].'</option>'; 
endforeach;
?>
</select>
$response = array (
  0 => 
  array (
    'slug' => 'acura',
    'name' => 'Acura',
    'name_en' => 'Acura',
  ),
  1 => 
  array (
    'slug' => 'alfa-romeo',
    'name' => 'Alfa Romeo',
    'name_en' => 'Alfa Romeo',
  ),
  2 => 
  array (
    'slug' => 'alpine',
    'name' => 'Alpine',
    'name_en' => 'Alpine',
  ),
  3 => 
  array (
    'slug' => 'aro',
    'name' => 'ARO',
    'name_en' => 'ARO',
  ),
  4 => 
  array (
    'slug' => 'aston-martin',
    'name' => 'Aston Martin',
    'name_en' => 'Aston Martin',
  )
);
echo "<select>";
foreach($response as $option){
 echo "<options value='".$option['name_en']."'>".$option['name_en']."</options>";
}
echo "</select>";

You can try the following code:

<?php
$list = array (
  0 => 
  array (
    'slug' => 'acura',
    'name' => 'Acura',
    'name_en' => 'Acura',
  ),
  1 => 
  array (
    'slug' => 'alfa-romeo',
    'name' => 'Alfa Romeo',
    'name_en' => 'Alfa Romeo',
  ),
  2 => 
  array (
    'slug' => 'alpine',
    'name' => 'Alpine',
    'name_en' => 'Alpine',
  ));
?>
<html>
    <head> </head>
    <body>
        <select>
            <?php foreach ($list as $lv){ ?>
            <option><?= $lv['name'] ?></option>
            <?php } ?>
        </select>
    </body>
</html>

I have listed name if you want to change it then use another index slug or name_en

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM