我有一个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);
从这里开始,我似乎无法从每个单独的行中获取数组,它仅给出第一行的数组结果,从而影响了我的下游结果。我如何实现这个目标?
答案 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);
希望这对您有帮助