如何在 PHP 中获取数组中的唯一值

How to get unique value in array in PHP

我的数据库

Tables_sup |
+------------------+
| supid            |                
  scompany        | 
| scategory        | 
| smarket           |
|    

我的PHP代码

<?php
require_once 'DBConnect.php';



    $con = mysqli_connect("localhost","gb","123");
        if (!$con) {
        die('Could not connect: ' . mysqli_error());
        }

    mysqli_select_db($con,"test_database");



    $sql=mysqli_query($con,'SELECT DISTINCT sup.supid,sup.smarket FROM sup order by supid desc');
    $i=0;
    $dyn_table='<table border="1" cellpadding="10">';
    while($row=mysqli_fetch_array($sql)){

     $supid = $row["supid"];
     $smarket = $row["smarket"];

     if ($i%5==0){

        $dyn_table.='<tr><td>'.$smarket. '<td>';

      }else{

        $dyn_table.='<td>'.$smarket. '<td>';

     }
     $i++;
}

$dyn_table.= '<tr><table>' ;   
?>

我的HTML

<!DOCTYPE html>
<html>
<head>
</head>
<body>
  <?php echo $dyn_table;?>

</body>
</html>

我的问题 结果还可以,但是用 duplicate.How 得到唯一的结果?

根据你的情况,你可以尝试group by功能。

假设你的 sup table 的 id 列是主键,因此无论如何都是唯一的,你的不同查询没有意义 - 每个找到的结果都有不同的 id,因此它可以 return 具有相同市场的多行。

查询不同的 smarket(没有 supid),你会得到你想要的结果集

SELECT DISTINCT smarket FROM sup

我在您的table构造中也看到了一些错误(例如关闭 tr 标签)

// every fifth row is gonna be different?
if ($i%5==0){
   $dyn_table.='<tr class="fifthrow"><td>'.$smarket. '</td></tr>';
}else{
   $dyn_table.='<tr><td>'.$smarket. '</td></tr>';
}

最后,不要打开另一个 tr 和 table ;) $dyn_table.= '</table>' ;

编辑:忘记为 table

添加一些结束标签