我有一列包含整数值。我通过
加入所有列"SELECT GROUP_CONCAT(column) AS column"
然后我构建一个数组
while ($row = $result->fetch_assoc()){
$employees[] = $row['column'];
}
print_r($ employees)返回Array([0] => 1,2,3,4,68,25,1)
所以我想删除重复的1,为此我使用array_unique
print_r(array_unique($employees));
这仍然会带回Array([0] => 1,2,3,4,68,25,1)
我在这里做什么错
答案 0 :(得分:2)
SQL端的解决方案:
SELECT GROUP_CONCAT(DISTINCT column) AS column
如果要订购列表:
SELECT DISTINCT column ORDER BY Column
,然后按
存储所有行while(...) $employees[] = $row['column'];
答案 1 :(得分:0)
问题是您试图在字符串上使用array_unique()
,但实际上不会做任何事情。
您可以使用explode()
函数将此字符串分成数组。
$unique = array_unique(explode(',', $employees[0]);
或者,您可以只在循环内部检查是否已使用in_array()
将值放入数组中。
while ($row = $result->fetch_assoc()){
if(!in_array($row['column'], $employees)) {
$employees[] = $row['column'];
}
}
答案 2 :(得分:0)
只需使用array_map
函数。并使用intdiv
函数
$employees = array_unique(array_map("intdiv", $employees));
print_r($employees);