php - 组合来自不同 MySQL 条目的数组并删除重复项

标签 php mysql mysqli

我有一个 MySQL 数据库,其中包含不同的行和一个包含数组的特定列,我希望将它们组合起来,然后删除重复项。例如,以下条目 row1 ([0] => 1) row2 ([0] => 2 [1] => 3)row3 ([0] => 1 [1] => 2 [2] => 3) 。我需要将它们组合起来并删除重复项,如下所示:

rows ([0] => 1 [1] => 2 [2] => 3)

我已经从数据库中调用了查询,如下所示,由于条目是通过逗号分隔存储的,(1,2,3),所以我使用爆炸函数以上面的格式获取它们。

$query2 = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis<>'';";
            $result2 = mysqli_query($conn, $query2);
            $input = mysqli_fetch_array($result2);
            $micro_analysis = $input['micro_analysis'];
            $micro_analyses = explode(',', $micro_analysis); 
            print_r($result2);

从这里我似乎无法从每个单独的行获取数组,它只给出第一行的数组结果,从而影响我的下游结果。我怎样才能实现这个目标?

最佳答案

将其存储为逗号分隔的字符串,然后 explode并成功unique 。然后您可以使用 array_filter删除任何 null 或空值

此外,您还错过了循环结果集以获取从查询返回的所有值的情况。

这里是更新的代码片段,

$query2 = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis<>'';";
$result2 = mysqli_query($conn, $query2);

$micro_analysis = '';
while($input = mysqli_fetch_array($result2))
{
    $micro_analysis .= $input['micro_analysis'] . ',';
}

$micro_analysis_arr = array_filter(array_unique(explode(',', $micro_analysis)));

关于php - 组合来自不同 MySQL 条目的数组并删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53515267/

相关文章:

php - CKEditor 正在转义 html 元素

php - 使用 LEFT JOIN 显示不匹配/不存在的行

mysql - 需要帮助将 2 个查询合并为 1 个

php - mysql 获取结果的最佳方式

mysql - 我如何在 ruby​​ 中解析这个查询 url

PHP 编辑表单未正确发送到 MySql

php - 部署多个博客,或者类似yammer的东西

php - 回显来自 mySQL 的多个响应

php - fatal error : Call to a member function query() - php

php - 尝试使用php创建表时出错