我有一个 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/