【问题标题】:Print an array value only once and assign it to a new array [duplicate]仅打印一次数组值并将其分配给新数组[重复]
【发布时间】:2022-01-25 14:30:58
【问题描述】:

我尝试使用此代码从“联系人”表中获取所有值,然后仅打印重复一次的每个值,例如:如果组具有值 (A、A、A、B、C),则只会打印每个值一次(A,B,C)并将这些 A,B,C 中的每一个分配给一个新数组

$sql = "SELECT Groupss FROM Contact";
$result = $conn->query($sql);
$Grouplist = array();
if (mysqli_num_rows($result) > 0) {
    while ($row = $result->fetch_assoc()) {
        $Grouplist[0] = $row;
        (array_unique($Grouplist[0]));
        foreach ($row as $key => $value) {
            $newarray[] = $value;
            echo  $value;
        }
    }
}

【问题讨论】:

  • array_unique 可以工作,除了the documentation shows 您需要将返回值分配给像$unique = array_unique($Grouplist[0]); 这样的变量。尽管您可能希望首先在 while 循环中获取所有结果,然后在 while 循环之后调用 $unique = array_unique($Grouplist);` 并遍历 $unique。跨度>
  • 如果你想在 PHP 而不是 SQL 中实现这个逻辑,你可以去掉 while 循环,而是调用 $unique = array_unique($result->fetch_all(MYSQLI_ASSOC)); 来获取所有行作为关联数组,然后迭代独特的结果集,例如 foreach ($unique as $key => $value) { echo $value; }

标签: php sql


【解决方案1】:

您可以使用DISTINCT,它只返回不同(不同)的值。

所以你的 $sql 变量是$sql = "SELECT DISTINCT Groupss FROM Contact";

更多关于DISTINCT的信息可以在here找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-07
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2022-01-20
    • 2021-08-27
    相关资源
    最近更新 更多