在下拉列表中仅显示不同的值

时间:2017-11-13 19:00:34

标签: php arrays templates

我有一个包含下拉列表的表单。表单链接到产品表。该表中的一个字段是' mfg name'。以下代码返回EACH产品的制造商。我寻求一个下拉列表来显示一个独特的制造商列表。

<div class="form-group">
  <?php echo Form::label('mfg name', 'mfg', array('class' => 'col-md-4 control-label')); ?>
  <div class="col-md-5">
    <!-- Datalist-->
    <input type="text" id="default" list="mfg" placeholder="mfg name" class="form-control input-md" name="mfg">
    <datalist id="mfg">
    <?php 
        foreach ($products as $prod){?> 
        <option value="<?php echo $prod->mfg; ?>">
    <?php   }?>
    </datalist>
  <datalist id="json-datalist"></datalist>
  </div>
</div>

那么如何才能将不同的制造商列表显示为下拉列表呢?

1 个答案:

答案 0 :(得分:1)

更有效的方法是将不同的制造商查询到自己的数组中并对其进行迭代。但是,根据您提供的上下文并假设您使用的是PHP&gt; = 5.5,您可以使用array_column函数与array_unique函数结合使用:

<?php foreach(array_unique(array_column($products, 'mfg')) as $mfg) {?>  
      <option value="<?php echo $mfg; ?>">
<?php   } ?>