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

时间:2018-11-28 08:39:49

标签: 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)存储的,所以我使用了explode函数以上述格式获取它们。

$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);

从这里开始,我似乎无法从每个单独的行中获取数组,它仅给出第一行的数组结果,从而影响了我的下游结果。我如何实现这个目标?

2 个答案:

答案 0 :(得分:2)

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

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

这是更新的代码段,

$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)));

答案 1 :(得分:0)

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

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

$micro_analysis_arr = array_unique($micro_analysis);

希望这对您有帮助