【发布时间】:2018-05-02 19:52:50
【问题描述】:
抱歉,如果这是重复的,我已尝试搜索但似乎找不到答案。我可能只是把这段代码放错了地方。
我已经计算了从各种选择框中输入的重复值,这些值是通过 $_GET 发送过来的。使用这些重复项,如果超过(无论设置的数量是多少),那么它将通过 mysql 查询运行。这一切都很好。
问题是我需要删除从 mysql 查询返回的重复项。这是我的代码:
if ($countGearSelected >= 2) {
$gearSets = array_keys(array_filter(array_count_values($_GET['gearPiece']), function($v) {
return $v > 1;
}));
foreach ($gearSets as $gearSetKey => $gearSetValue) {
$result = mysqli_query($con,"SELECT twoPieceBonus FROM sets WHERE setName='".$gearSetValue."';");
while($row = mysqli_fetch_array($result)){
$twoPieceBonus .= urldecode($row['twoPieceBonus']).'</br></br>';
}
$twoPieceBonus = implode(',',array_unique(explode(',', $twoPieceBonus)));
$twoSelected = substr($twoPieceBonus, 0, -10);
}
}else{
$twoSelected = '';
}
如您所见,我在 SE 上的其他各种帖子中尝试了 array_unique 选项,但它似乎不起作用。我想我可能用错了?
在 mysql 查询中使用 DISTINCT 不起作用,因为正在查询的一些“集合”具有相同的结果(如果这有意义?)。
非常感谢任何帮助。
【问题讨论】:
-
你能给我们
$result中值的格式吗? -
你能打印出你的 $result 值吗?
-
mysqli_result 对象([current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0)
-
“它似乎不起作用”:这很模糊。
array_unique当然可以,所以请提供一个具体的数据示例,你从中得到了什么,以及它与预期结果有何不同。 -
用逗号 (,) 替换
标记或用
分解。
标签: php mysql arrays string duplicates