PHP - 生成HTML选择菜单,不重复

时间:2015-09-19 15:34:11

标签: php

我从数据库中检索记录列表,然后循环遍历它们以构建HTML Select菜单。但是,记录可以包含重复的条目,因此我只想显示唯一的条目。

这是构建选择菜单的PHP代码:

<?php
    foreach($records as $record) {
     $category = $record->getField('category');
     echo '<option value="'. $category .'">'. $category .'</option>';
    } 
?>

我需要包含一些逻辑来比较选择菜单和我添加到列表中的每条新记录,以确保它不存在于列表中,但不确定如何进行此

更新:我开始尝试创建一个数组,然后发现以下内容:

foreach($records as $record) {
      $category = $record->getField('category');
      $categories[$category] = $category;
    } 
 foreach($categories as $cat) {
 echo '<option value="'. $cat .'">'. $cat .'</option>';
} 

生成仅包含唯一项目的选择菜单。我是PHP的新手,所以只是试图理解这一点 - 创建数组是否会自动删除任何重复数据?

1 个答案:

答案 0 :(得分:0)

在我这边,我只是更新我的查询,只显示DISTINCTGROUP BY的唯一记录。 但如果你不想那样,我会做什么。

第一种方法

<?php
    $listed_categories = [];
    foreach($records as $record) {
      $category = $record->getField('category');
      if( ! in_array( $category, $listed_categories ) {
         $listed_categories[] = $category;
         echo '<option value="'. $category .'">'. $category .'</option>';
      }

    } 
?>